Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面程序,并且Qt 是应用程序开发的一站式解决方案,如果我们学会qt,那么在开发中就可以高枕无忧了!那qt怎么生成exe文件?下面来我们就来给大家讲解一下。
一、首先将左下角的debug修改为release;
二、设置项目构建生成的文件的目录;
三、点击运行进行构建。该文件夹下就能看到有exe文件生成,但点击此时无法运行,原因是缺少Qt必要的库文件。
四、将该exe文件拷贝到新建的单独文件夹中;
五、在windows下搜索Qt,打开命令窗口;
六、cd到exe所在的目录;
七、输入windeployqt + exe文件名称 ,如图,将所需的库文件拷到对应目录;
八、此时该目录下点击exe可以正常运行;
qt如何自定义信号函数?
信号函数指的是符合以下条件的函数:
1. 定义在某个类中,该类直接或间接继承自 QObject 类;
2. 用 signals 关键字修饰;
3. 函数只需要声明,不需要定义(实现);
4. 函数的返回值类型为 void,参数的类型和个数不限。
举个简单的例子:
class MyWidget: public QWidget { //Q_OBJECT 是一个宏,添加它才能正常使用 Qt 的信号和槽机制 Q_OBJECT //修饰信号函数的关键字 signals: //自定义的信号函数 void MySignal(QString message); };
我们自定义了一个继承自 QWidget 的 MyWidget 类,QWidget 是 QObject 的子类,所以 MyWidget 间接继承自 QObject 类。MyWidget 类中自定义了名为 MySignal 的信号函数(可以简称 MySignal 信号),它用 signals 关键字修饰,没有返回值,也没有定义(实现),仅有 1 个参数。
对于 MySignal() 信号函数,程序中不会直接调用它,而是借助 connect() 连接某个槽函数,实现的语法格式是:
MyWidget myWidget; QObject::connect(&myWidget,&MyWidget::MySignal,信号接收者,槽函数);
一旦确定了信号接收者和槽函数,当 MySignal 信号发出后,与之相连的槽函数就会执行。那么,程序中如何发出 MySignal 信号呢?
对于 Qt 提供给我们的信号函数,其底层已经设置好了信号发出的时机,例如按下鼠标时、点击 Enter 回车键时等等。对于自定义的信号,我们需要自己指定信号发出的时机,这就需要用到 emit 关键字。emit 中文意思为“发出、射出”,是 Qt 在 C++ 基础上扩展的一个关键字,专门用来发射信号。
以定义好的 MySignal 信号为例,修改 MyWidget 类为:
class MyWidget: public QWidget { //Q_OBJECT 是一个宏,添加它才能正常使用 Qt 的信号和槽机制 Q_OBJECT //自定义信号函数 signals: void MySignal(QString mess); public: void emitSignal() { emit MySignal(message); } private: QString message; };
我们为 MyWidget 类新增了一个 emitSignal() 方法和一个 message 属性,emitSignal() 方法中的emit MySignal(message);语句就表示发射 MySignal 信号。当程序中执行 emitSingal() 函数时,就会发出 MySignal 信号,message 属性的值也会随信号一同发出,对应的槽函数可以接收到 message 的值。
对于每一个自定义的信号函数,程序中都应该提供发射该信号的方法(函数),而且这样的方法(函数)可以有多个。
总之我们在开发中,如果我们遇到信号函数的参数类型和个数无法满足实际需求的时候,我们就可以进行利用自定义函数解决哦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: