使用python的pyside2模块setstylesheet()方法插背景无法显示
from PySide2.QtWidgets import QApplication, QWidgetimport sys
import time
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Pyside2 Simple Appplication")
# self.setGeometry(300,300, 500,400)
self.setMinimumHeight(400)
self.setMinimumWidth(800)
self.setMaximumHeight(800)
self.setMaximumWidth(1600)
myApp = QApplication(sys.argv)
window = Window()
window.setStyleSheet("background-color:rgb(230,245,200)")
window.setStyleSheet("background-image:url(D:\BaiduNetdiskDownload\sucai\dingzi.png)")
window.show()
window.resize(600,400)
window.repaint()
myApp.exec_()
sys.exit(0)
1、利用style sheet给窗体设置背景
使用stylesheet设置背景图片还是有一些要注意的,如果是在mainwindow和dialog中,直接右键change style sheet在add resource中选择background-image或者border-image,选择资源文件中的图片就行了(前者是按像素显示图片,后者可根据窗体大小来自动缩放图片),如下图:
但在widget中就不行,你会发现,用同样的方法,背景并没有发生改变,而仅仅是它的子窗体背景图片发生了改变。
那么在widget中要如何做呢,我们在widget中放置一个frame,然后对frame通过stylesheet设置背景,后面窗体里所有的部件都放在这个frame里。
我们知道,子窗体会继承父窗体的属性,也就是说,父窗体的背景,在子窗体中也会有,那如何让子窗体不继承父窗体的背景呢,同样的,还是在Edit Style Sheet里,需下输入如下代码:
#desktop {
border-image: url(:/images/desktop.jpg);
}
#desktop * {
border-image:url();
}
desktop是你的窗体名。 在窗体中放一个frame试试看 疾风怪盗 发表于 2020-9-28 22:57
在窗体中放一个frame试试看
self.tabWidget = QTabWidget(zu_ui) QTabWidget()提供了一个选项卡小部件,其包含有选项卡栏和页面区域
self.tabWidget.setObjectName(u"tabWidget")给其设置Name标示
self.tab1 = QWidget() 新建窗口标签页tab1
self.tab1.setObjectName(u"tab1")
self.gridLayout = QGridLayout(self.tab1) 在标签页tab1中新建一个网格布局变量gridLayout,QGridLayout()用于创建网格变量
self.gridLayout.setObjectName(u"gridLayout")
self.groupBox_2 = QGroupBox(self.tab1) QGroupBox()为构建分组框提供了支持,分组框通常带有一个边框和一个标题栏,(形如excel式管理控件与标签)
self.groupBox_2.setObjectName(u"groupBox_2")
self.formLayout_2 = QFormLayout(self.groupBox_2) QFormLayout()主要就是用来管理输入控件及其关联标签的形式,它以两列的形式列出,左列由标签组成,右列由“字段” 小部件(行编辑器,旋转框等)组成
self.formLayout_2.setObjectName(u"formLayout_2")
self.label_12 = QLabel(self.groupBox_2) QLabel()的功能就是显示文字或者图片,没有用户交互功能 显示标签label_12:定子上层槽顶宽(groups2)
self.label_12.setObjectName(u"label_12") 设置标签lable_12的标示
已经设置了网格变量,还添加了组,现在就是想给组添加一个背景图,求大神指导
我不是大神,你这样的代码我运行不了,也不知道怎么改,我一直是用加载UI的方式来做图形化界面的
代码里设置样式,我就弄过背景色的设置,这个简单
要背景图片用desinger来设计吧
添加背景图片:
1、添加Frame组件,在sheetstyle属性中编辑
2、选择backgroud-image,新建一个资源文件,后缀为.qrc
3、添加前缀名字后选择文件
4、如果需要复制,就选择复制,之后确定就可以显示效果
background-image: url(:/resource1/star02.png);
这个步骤有几个图,传图太麻烦了,你要么通过好友申请,加个QQ我把图借给你看
感谢大哥,等级不够加不了好友{:5_100:},用QT设计师作图行界面开发我会,只是这代码不是用加载动态ui图做的,要修改的话大部分代码都要修改,会比较麻烦。我也在csdn上看到Qwidget类的窗口使用setstylesheet()方法好像有问题,好像是要会用mainwindow的窗口才可以。
非常感谢大哥的热心帮助,我Q是813270556,
页:
[1]