第2章 Hello World
方式一:利用向导新建Qt Gui应用程序
方式二:纯代码编写Hello World程序
新建空Qt项目->新建main.cpp文件
1 #include <QApplication> 2 #include <QDialog> 3 #include <QLabel> 4 #include <QTextCodec> 5 6 int main(int argc, char *argv[]) 7 { 8 QApplication a(argc,argv);//用于管理应用程序资源 9 QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));//利用静态函数setCodeForTr用来设置QObject::tr所要使用的字符集 //非界面文字显示包含中文,用如下语句: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); 10 QDialog w;//用来实现一个对话框界面 11 w.resize(400,300); 12 QLabel label(&w);//创建Label控件 13 label.move(120,120); 14 //label.setText("Hello World! 你好 Qt!"); 15 label.setText(QObject::tr("Hello World! 你好 Qt!"));//QObject::tr()将字符串进行编码转换,一般用于界面文件显示 16 w.show();//显示对话框 17 return a.exec(); 18 }
方式三:利用命令行编译程序
在Qt的安装目录下C:\Qt新建helloworld文件夹,新建main.cpp文件,copy上述代码
利用Qt 4.8.5 Command Prompt进行命令行编译程序
方式四:利用.ui界面文件
1.新建项目->Qt设计师界面->创建hellodialog.ui界面
2.设计界面,添加Label控件,增加"Hello World! 你好,Qt!"文字,并将ObjectName命名为“HelloDialog”
3.构建工程,生成对应的ui_hellodialog.h头文件
4.更改main.cpp文件
#include <ui_hellodialog.h> int main(int argc, char *argv[]) { QApplication a(argc,argv); QDialog w; Ui::HelloDialog ui; ui.setupUi(&w); w.show(); return a.exec(); }
5.运行程序,就可以看到与之前一个的对话框了。
方式五:利用命令行编译ui文件和程序
1.在C:\Qt目录下新建helloworld_2文件夹,将上述hellodialog.ui及main.cpp文件复制过去
2.打开Command Prompt输入命令:
方式六:通过自定义C++类结合.ui文件初始化构造而成
1.新建空项目,创建C++ Class类命名为HelloDialog,继承基类为QDialog
2.在main.cpp中添加如下代码
1 #include <QApplication> 2 #include <hellodialog.h> 3 4 int main(int argc,char *argv[]) 5 { 6 QApplication a(argc,argv); 7 HelloDialog w; 8 w.show(); 9 return a.exec(); 10 }
此时运行将会是一个空白的Dialog
3.添加上述hellodialog.ui文件到项目中
4.在hellodialog.h头文件中添加如下代码
1 #ifndef HELLODIALOG_H 2 #define HELLODIALOG_H 3 4 #include <QDialog> 5 6 //声明Ui命名空间下的HelloDialog类(新添加代码) 7 namespace Ui { 8 class HelloDialog; 9 } 10 11 //新建项目时创建的C++类 12 class HelloDialog : public QDialog 13 { 14 Q_OBJECT 15 public: 16 explicit HelloDialog(QWidget *parent = 0); 17 18 signals: 19 20 public slots: 21 22 private: 23 Ui::HelloDialog *ui; //定义Ui下的类对象指针作为新建C++类的成员变量(新添加代码) 24 25 }; 26 27 #endif // HELLODIALOG_H
在hellodialog.cpp的构造函数中添加如下代码
1 #include "hellodialog.h" 2 #include "ui_hellodialog.h" 3 4 HelloDialog::HelloDialog(QWidget *parent) : 5 QDialog(parent) 6 { 7 ui = new Ui::HelloDialog; 8 ui->setupUi(this); 9 }
重新构建,就可以得到与上述实例一致的对话框了
方式七:使用Qt设计师界面类
1.新建helloworld空项目,添加Qt设计师界面类,命名为HelloDialog,并添加Label控件,写入对应文字
2.在main.cpp中添加如下代码
1 #include <QApplication> 2 #include "hellodialog.h" 3 4 int main(int argc,char *argv[]) 5 { 6 QApplication a(argc,argv); 7 HelloDialog w; 8 w.show(); 9 return a.exec(); 10 }
然后运行,其实这里的Qt设计师界面类就是上述实例中的C++类和ui文件的结合。