Witam. Zacząłem pracę z Qt Creatorem i co nieco umiem zrobić, ale wydaję mi się, że powinien być jakiś sposób, żeby używać po prostu label->setText("Asd"), costam->jakas_funkcja(), a nie pisać przed każdym elementem ui->. Do każdego elementu na formatce odwołuję się w taki sposób np. ui->label->setText, ui->button->...
Samo wpisanie using namespace ui nie działa, ale to tak tylko intuicyjnie próbowałem wpisać.
Jak samemu utworzysz ten label, w swojej wlasnej klasie, to bedziesz mogl sie do niego odwolywac label->pierdupierdu()
.
A nie ma jakiegoś sposobu jak z using namespace std, że nie piszemy std?
Nie! To jest obiekt normalnej klasy, zawarty w Twojej klasie opakowujacej (wrapperze), tak to sie mniej-wiecej dzieje w tym Qt. Masz dwa wyjscia:
olac designera kompletnie
otworzyc w IDE ten plik wygenerowany z definicja tej klasy i tam dodawac jakis kod (nigdy nie probowalem, nie mam pojecia czy nie zacznie Ci sypac bledami i ogolnie takie podejscie nie jest zbyt rozsadne).
Albo po prostu pogodz sie z tym, ze domyslnie masz tam ui
, np. netbeans domyslnie nazywa ten obiekt form
bodajze ;>
W Pascalu istnieje konstrukcja with
, w C++ takiej nie ma*.
Najwyżej można by spróbować z metod chaining...
*
... dopóki nie chcesz w bardzo brzydki sposób wykorzystywać makr preprocesora:
#define WITH(X) do { auto P = &X; \
struct WITH : typename decay< decltype(X) >::type { void operator()() {
#define ENDWITH }}; static_cast<WITH&>((*P))(); } while(0)
WITH( b )
cerr << field << endl;
ENDWITH;
http://stackoverflow.com/questions/2279180/does-c-have-with-keyword-like-pascal
Dzięki. W takim razie godzę się z tym.
Przeczytaj ten materiał:
http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
Dowiesz się jak można używać formatek w aplikacjach Qt. Są co najmniej 3 sposoby - każdy ma wady i zalety, sprawdź, potestuj. Jednym z nich możesz pozbyć się ui-> ale jak wspomniałem - wszystko ma plusy i minusy. Dowiesz się po lekturze. Ogólnie sposób korzystania z formularzy jaki generuje Qt Creator jest najczęściej stosowany w świecie programistów Qt.