Witam
Postanowiłem nauczy się biblioteki/frameworka QT w wersji 5.
Czytałem już kilka kursów/lekcji itp ale nie znalazłem odpowiedzi na swoje pytania.
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
private:
Ui::MainWindow *ui;
};
-
Czym jest Q_OBJECT - czy jest konieczne w każdej klasie oraz dlaczego nie ma błedu z powdu braku średnika na końcu?
-
Czy stosowanie Qt Designer jest konieczne żeby używać QT - np. z powodu qmake zamist make ....
-
Nie rozumiem tych fragmentów kodu:
namespace Ui {
class MainWindow;
}
private:
Ui::MainWindow *ui;
Czy Ui::MainWindow to to samo co MainWindow? Jak w takim razie jest możliwe zadekalrować okno potem je defniować a w defnicji zawrzeć wskaźnik do okna?
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
4.1) Co to jest QApplication?
4.2)Czemu stworzono specjalną klasę QApplication? Za co ona odpowiada?
4.3)Gdzie jest jej definicja - przynajmniej *.hpp
4.4)Czy to ona obsługuje zdarzenia w sposób domyślny a kiedy ja chce zmienić zachowanie aplikacji to musze utworzyć klase dziedzicząca z QAppliaction i przesłonić odpowiednie metody?
- Wprowadziłem małą modyfikację.
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
MainWindow wi;
wi.show();
return a.exec();
}
Jak stworzyć drugie okno które było by inne od pierwszego i dlaczego one są takie same?
- Jak budować aplikacje opartą na kontrolkach za pomocą QT - czy użycie Designera jest obowiązkowe?
Powiedzmy że wy-klikałem sobie program w Qt Designer czy potem mogę dodawać klasy, funkcję oraz pliki*. hpp i *.cpp jak w normalnym projekcie - boję się żeby nie naruszyć jakiegoś porządku czy czegoś nie zepsuć.
Generuje on pliki - czy ja mam/mogę je modyfikować?