QT 中 Ui 名空间研究用最新的 QtCreator 选择 GUI 的应用会产生含有如下文件的工程下面就简单分析下各部分的功能。.pro 文件是供 qmake 使用的文件,不是本文的重点【不过其实也很简单的】,在此不多赘述。所以呢,还是从 main 开始, view plain copy to clipboard print ? 1. #include <QtGui/QApplication> 2. #include "" 3. int main(int argc, char *argv[]) 4.{ 5. QApplication a(argc, argv); 6. MainWindow w; 7. (); 8. return (); 9.}很简单的样子 QApplication a(argc, argv) 和 () 可以理解为载入了 Qt的架构,跑 Qt的程序都要有此部,就不多说了。其中调用了个 MainWindow 并把它 show 了出来,具体分析下下面是 中的内容 view plain copy to clipboard print ? 1. #ifndef MAINWINDOW_H 2. #define MAINWINDOW_H 3. #include <QtGui/QMainWindow> 4. namespace Ui 5.{ 6. class MainWindow; 7.} 8. class MainWindow : public QMainWindow 9.{ 10. Q_OBJECT 11. public: 12. MainWindow(QWidget *parent = 0); 13. ~MainWindow(); 14. private: 15. Ui::MainWindow *ui; 16. }; 17. #endif // MAINWINDOW_H 开始的 namespace Ui可能让人有点摸不着头脑,这是因为 qt把 ui相关的类单独独立了出来,但类名相同,禁用 namespace 区别【但是就目前的使用来说,感觉这样做不怎么好,后面我会解释原因】声明 namespace Ui是因为要调用 Ui中的 MainWindow ,此 MainWindow 非彼 MainWindow ,后面涉及的*ui 指针会调用它! 关于 Q_OBJECT 就不说了, Qt中与 signal 和 slot 相关的类都要这么声明下。仔细看出了构造,析构就没啥了,只有那么个*ui !不过现在如果运行下,也只会生成个窗体而已。下面来看构造函数和析构函数,其实也就是 view plain copy to clipboard print ? 1. #include "" 2. #include "" 3. MainWindow::MainWindow(QWidget *parent) 4.: QMainWindow(parent), ui(new Ui::MainWindow) 5.{ 6. ui->setupUi(this); 7.} 8. MainWindow::~MainWin
name ui 的研究 来自淘豆网m.daumloan.com转载请标明出处.