按上一篇的内容, 新建一个 VS Qt 工程.
main.cpp 里是程序的入口, 里面只有一个 main 函数, 它维护一个 Qt 对象实例.
#include <span style="color: #800000">"</span><span style="color: #800000">demo.h</span><span style="color: #800000">"</span><span style="color: #000000"> #include </span><QtWidgets/QApplication> <span style="color: #0000ff">int</span> main(<span style="color: #0000ff">int</span> argc, <span style="color: #0000ff">char</span> *<span style="color: #000000">argv[]) { QApplication a(argc, argv); Demo w; w.show(); </span><span style="color: #0000ff">return</span><span style="color: #000000"> a.exec(); }</span>
对于 Qt 程序来说, main()
函数一般以创建 application 对象开始(GUI 程序是QApplication
, 非 GUI 程序是QCoreApplication
, QApplication
实际上是QCoreApplication
的子类),后面才是实际业务的代码. 这个对象用于管理 Qt 程序的生命周期、 开启事件循环.
而 demo.h 里是我们 Qt 程序的界面类, 它继承于 QWidget类, 它是 Qt 程序所有用户界面对象的基类.
<span style="color: #000000">#ifndef DEMO_H </span><span style="color: #0000ff">#define</span> DEMO_H<span style="color: #000000"> #include </span><QtWidgets/QWidget><span style="color: #000000"> #include </span><span style="color: #800000">"</span><span style="color: #800000">ui_demo.h</span><span style="color: #800000">"</span> <span style="color: #0000ff">class</span> Demo : <span style="color: #0000ff">public</span><span style="color: #000000"> QWidget { Q_OBJECT </span><span style="color: #0000ff">public</span><span style="color: #000000">: Demo(QWidget </span>*parent = <span style="color: #800080">0</span><span style="color: #000000">); </span>~<span style="color: #000000">Demo(); </span><span style="color: #0000ff">private</span><span style="color: #000000">: Ui::DemoClass ui; }; </span><span style="color: #0000ff">#endif</span> <span style="color: #008000">//</span><span style="color: #008000"> DEMO_H</span>
这里面的代码我们以后再分析, 先写出 Hellp Qt! 出来.
双击 emo.ui 文件, 就会用 Qt Creator 打开界面.
左侧是 Qt 程序的控件, 我们主要使用的有:
QLabel(可以有超链接和图片) | 静态文本 |
QTabWidget | 选项卡 |
QTextEdit | 多行文本框 |
QLineEdit | 单行文本框 |
QGroupBox | 分组框 |
QSplitLine | 分隔线 |
QTableWidget | 列表框 |
QPushButton | 按钮 |
QCheckBox | 复选 |
QRadioButton | 单选 |
QHBoxLayout | 水平布局 |
QVBoxLayout | 垂直布局 |
在左侧找到 Label 控件, 拖拽到中间的窗口界面上
右键选择改变对象名称, 改成我们想要的对象名:
右侧可以设计控件的一些属性, 例如我们把 Label 的文本改成局中显示:
返回我们的 VS 工程, 打开 demo.cpp:
#include <span style="color: #800000">"</span><span style="color: #800000">demo.h</span><span style="color: #800000">"</span><span style="color: #000000"> <font style="background-color: #ff0000">#include </font></span><font style="background-color: #ff0000"><span style="color: #800000">"</span><span style="color: #800000">QLabel</span><span style="color: #800000">"</span></font><span style="color: #000000"> Demo::Demo(QWidget </span>*<span style="color: #000000">parent) : QWidget(parent) { ui.setupUi(</span><span style="color: #0000ff">this</span><span style="color: #000000">); <font style="background-color: #ff0000">ui.label_Hello</font></span><font style="background-color: #ff0000">->setText(<span style="color: #800000">"</span><span style="color: #800000">Hello Qt!</span><span style="color: #800000">"</span></font><span style="color: #000000"><font style="background-color: #ff0000">);</font> } Demo::</span>~<span style="color: #000000">Demo() { }</span>
红色部分是我们新添加的代码, 功能是设计刚才拖拽的 QLabel 的显示文字.
注意我们要使用 Qt 的哪个类, 就要添加那个类的头文件.
编译运行:
☠