Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面程序,在实际开发中,很多企业也会使用qt进行项目开发,那qt如何添加图片资源?下面来我们就来给大家讲解一下。
1、在ui设计界面中添加label,用于显示图片
2、添加QT资源文件
往项目中添加新文件,选择QT分类中的资源文件,名称为"myImage",其他选项默认。
3、添加资源
在项目目录下新建文件夹"image",用于存放将要使用的图片文件。
在Qt Creator中,在资源管理器界面单击"添加"按钮,选择"添加前缀",然后将属性栏中的前缀改为"/myImage",再单击"添加"按钮,"添加文件",在弹出的对话框中选择image中的图片文件。
添加完成后myImage.qrc目录下会有已经添加完成的图片文件。
4、使用图片
在使用label显示的地方,添加相应的代码。
// logo图片的加载
QImage image(QString(":/image/sf.png"));
ui->label_logo->setPixmap(QPixmap::fromImage(image));
qt怎么定义信号函数?
信号函数指的是符合以下条件的函数:
定义在某个类中,该类直接或间接继承自 QObject 类;
用 signals 关键字修饰;
函数只需要声明,不需要定义(实现);
函数的返回值类型为 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工具网。
推荐阅读: