斗破Qt目录:
斗破Qt编程入门系列之前言:认识Qt:Qt的获取与安装(四星斗师)
斗破QT编程入门系列之一:认识Qt:初步使用(四星斗师)
斗破QT编程入门系列之二:认识Qt:编写一个HelloWorld程序(四星斗师)
斗破QT编程入门系列之三:GUI应用程序设计基础:UI文件(四星斗师)
斗破QT编程入门系列之四:GUI应用程序设计基础:UI文件设计原理与运行机制(五星斗师)
参考书籍
《Qt5.9 C++开发指南》
斗破观看顺序:
https://v.haohuitao.cc/yhplay/336-1-2.html
第一季☞第二季前2集☞特别篇1☞第二季3~12集☞特别篇2沙之澜歌☞第三季☞第四季☞三年之约☞缘起☞年番
斗气大陆等级:
斗气有十一个阶别,斗之气,斗者,斗师,大斗师,斗灵,斗王,斗皇,斗宗,斗尊,斗圣,斗帝。
斗气大陆上很久没有出现过斗帝了。
一、参加炼药师竞赛
萧炎控制异火进入纳兰桀体内,为其祛除烙毒,而毒素却意外凶猛与顽固,并不能一次将其彻底清除。诡异的毒素也悄悄跟随着异火侵入了萧炎的体内,修炼时萧炎意外的发现,烙毒中蕴含着大量精纯的能量,一举使自己能力大增。
萧炎来到炼药师集会,想在这里看看能不能找到自己需要的药材,并在这里遇到了黑岩城的琳菲,并同时解救被商家欺负的雪魅。并在会长弗兰克和奥托大师的邀请下参加了加玛帝国的炼药师比赛,当然萧炎也是为了能获得恢复灵魂力量的药方–融灵丹,而美杜莎女王也急需这种物品来恢复自己的蛇人之身,命令萧炎一定要拿到此物。
二、UI文件设计原理与运行机制
为了搞清楚窗体类的定义,以及界面功能的实现原理,这里将项目进行编译。编译后在项目目录下会自动生成一个文件ui_widget.h,这样对于一个窗体,就有4个文件了,各个文件的功能说明如下:
下面分别分析各个文件的内容及其功能,以及它们是如何联系在一起工作的,实现界面的创建与显示的。
- widget.h文件
widget.h 文件是窗体类的头文件。在创建项目时,选择窗体基类是QWidget,在widget.h中定义了一个继承自QWidget的类Widget,下面是widget.h文件的内容。
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.h文件有几个重要的部分。
(1)namespace声明
代码中有如下的一个namespace声明:
namespace Ui {
class Widget; }
这是声明了一个名称为Ui的命名空间(namespace),包含一个类Widget。但是这个类Widget并不是本文件里定义的类Widget,而是ui_widget.h文件里定义的类,用于描述界面组件的。这个声明相当于一个外部类型声明(具体要看完ui_widget.h文件内的解释之后才能搞明白)。
(2)Widget类的定义。widget.h文件的主体部分是一个继承于QWidget的类Widget的定义,也就是本实例的窗体类。
在Widget类中使用了宏Q_OBJECT,这是使用Qt的信号与槽(signal和slot)机制的类都必须加入的一个宏(信号与槽在后面详细介绍)。
在public部分定义了Widget类的构造函数和析构函数。
在private部分又定义了一个指针。
Ui::Widget *ui;
这个指针是用前面声明的namespace Ui里的Widget类定义的,所以指针ui是指向可视化设计的界面,后面会看到要访问界面上的组件,都需要通过这个指针ui。
2.widget.cpp文件
widget.cpp文件是类Widget的实现代码,下面是widget.cpp文件的内容。
#