QT添加资源图片方法

第一步:添加qrc资源文件

(1)选择项目 右键 “添加新文件” ->“Qt”-> “Qt Resource File”-> 填写文件名

(2)右击刚才新加的.qrc文件 -> “添加现有文件” ->将图片导入到该文件中

第二步:进入UI界面

(1)选择需要添加图片的控件,右击,选择“改变样式表”

(2)点击“添加资源”旁边的倒三角,此时会出现三个选项:background-image、board-image、image,根据需求选一个

(3)最后,在跳出的对话框里选择想要添加的图片即可

注意:这个添加的图片要求是png格式的,jpg格式的图片是不能显示的,可以用电脑自带的画图

软件打开jpg格式的图片另存为png格式就可以了

注意:
      如若没有选择“添加资源”旁边的倒三角,而是直接点击“添加资源”,然后继续选择图片,对话框的左下方会提示“无效样式表”,追究其原因是,添加的图片没有确定添加的方式,此时,解决方法是,在“url(:/Pictures/bigbackground.png)”前面添加“background-image:”、“board-image:” 或者“image:”,具体添加什么根据实际需求选择

Qwidget 无法加载背景图片,或设计师显示背景图片,运行时不显示

一、设置方法有两种,如下:

1、利用style sheet给窗体设置背景
使用stylesheet设置背景图片还是有一些要注意的,如果是在mainwindow和dialog中,直接右键change style sheet在add resource中选择background-image或者border-image,选择资源文件中的图片就行了(前者是按像素显示图片,后者可根据窗体大小来自动缩放图片,通常使用后者,前者如果界面与图片大小不一样,则背景的显示可能就不是整张图片了)

a、但在widget中就不行,你会发现,用同样的方法,背景并没有发生改变,而仅仅是它的子窗体背景图片发生了改变。 那么在widget中要如何做呢,我们在widget中放置一个frame,然后对frame通过stylesheet设置背景,后面窗体里所有的部件都放在这个frame里。
b、 我们知道,子窗体会继承父窗体的属性,也就是说,父窗体的背景,在子窗体中也会有,那如何让子窗体不继承父窗体的背景呢,同样的,还是在Edit Style Sheet里,需要输入如下代码:(这样就可以解决窗体中的按键、QLable等控件与主窗体的一样。)

#desktop {undefined
border-image: url(:/images/desktop.jpg);
}
#desktop * {undefined
border-image:url();
}

desktop是你的窗体名。
例如 QWidget widGet;则样式表需要写成
#widGet {undefined
border-image: url(:/images/desktop.jpg);
}
#widGet * {undefined
border-image:url();
}
针对QWidget设计师含有背景图片,而运行时没有,则需要用以下方法

2、不过也可以通过如下代码来实现:
  QWidget *widget = new QWidget();
 widget->setAutoFillBackground(true);
 QPalette palette;
 QPixmap pixmap(":/Resources/Penguins.jpg");
 palette.setBrush(QPalette::Window, QBrush(pixmap));
 widget->setPalette(palette);
 widget->show();
 

猜你喜欢

转载自blog.csdn.net/weixin_40593838/article/details/124430627
今日推荐