Qt中为工程添加资源文件、给按钮添加图片
Qt中为工程添加资源文件、给按钮添加图片
- 1.使用QIcon类。代码如下:
QIcon icon;
icon.addFile(tr("res/icon/wall.png"));
ui->toolButton->setIcon(icon);
- 2.使用QPixmap和QBitmap类。代码如下:
QPixmap icon1(tr("res/icon/wall.png"));
ui->toolButton->setIcon(icon1);
ui->toolButton->setFixedSize(icon1.size());
- 3.使用样式表。添加一个qrc文件到工程,添加要使用的图片,然后代码如下:
ui->toolButton->setStyleSheet(tr("background-image: url(:/icon/res/icon/wall.png);"));
这里需要注意相对路径的问题。将res文件夹放置在程序目录下,然后添加如下代码,设置工作路径到程序目录:
QDir::setCurrent(QCoreApplication::applicationDirPath());
为工程添加资源文件、给按钮添加图片
下面转载自https://blog.csdn.net/yansmile1/article/details/52910083
上一次布局好之后做了小小的改动,就是在左边放按钮的上面添加了一个放logo的label(虽然还没有想好要放什么logo—— )
现在的布局就是这样子了:
下面要做的是给按钮添加图标,还有在logo和右边的大label上放上初始的图片,这里就需要为工程添加资源文件了,步骤如下:
1、右击项目文件夹选择添加新文件——选择Qt——Qt resource file
2、填写好name后点下一步、完成,然后双击项目中生成的.qrc文件,点击添加,选择添加前缀
2、添加好前缀之后就可以添加文件了,选择需要添加的文件,这里需要把需要添加的文件先放到项目目录下的一个文件夹下,添加好之后保存,就能在资源浏览器中看到了,也就能在代码中引用了。
明天就可以把图标和logo添加上去了
————————————————————————————————————————
/******
这里有个小插曲,我发现一开始我的movie都写成了moive ,以为要一个个改感觉好麻烦,后来发现可以将光标移动到需要更改的变量上,按Ctrl + Shift + R,这样就能把项目中的这个变量名称一起改掉了
*******/
回到正题——给按钮添加图标,一共分为以下几步:
1、申明一个QIcon对象用来存放图标
QIcon button_ico(":/new/icon/srcs/movieclicked.png");
2、按钮对象调用setIcon()函数把图片加载到button上
button_movie->setIcon(button_ico);
运行一下发现按钮的大小和图标的大小都感觉很别扭:
我想最好能图标变大一点,然后按钮和图标一样大。
但是发现无论是在将button放到layout之前还是之后调用QPushButton的resize()函数都没有效果。
我想因为是放在layout里就算是resize后也会根据窗口的大小又自动改掉,所以就直接把按钮的最大最小值设置为一样就行了:
-
QIcon button_ico(":/new/icon/srcs/movieclicked.png");
-
button_movie = new QPushButton;
-
button_movie->setMinimumSize(33,33);
-
button_movie->setMaximumSize(33,33);
-
button_movie->setIcon(button_ico);
-
button_movie->setIconSize(QSize(28,28));
效果就是这样的:
图标添加完了,接着就把logo和右边的label上添加上图片
添加图片部分的代码如下:
-
logo_label = new QLabel("LOGO"); //添加图片
-
QImage *logo_img = new QImage(":/new/label/srcs/logo.png");
-
QImage *scaled_logo_img = new QImage();
-
*scaled_logo_img=logo_img->scaled(150,120,Qt::KeepAspectRatio);
-
logo_label->setPixmap(QPixmap::fromImage(*scaled_logo_img));
下一篇: 算法动画图解
推荐阅读