Python pyqt4小部件显示在布局外部
我想要照片中的效果。qlabel位于布局中,字体居中。下面是我写的代码,这与我想要的不同。首先,qlabel位于布局之外,其次,字体不居中 导入系统 从PyQt4.QtCore导入Qt 从PyQt4.QtGui导入QLabel、QApplication、QWidget、QVBoxLayout、QStyleOption、QPainter、QStyle 类示例(QWidget): 定义初始化(自): super(例如,self)。\uuuuu init\uuuuuuuu() self.setGeometry(100100500500) vbox=QVBoxLayout() self.setLayout(vbox) a=QLabel('aaa') b=QLabel('bbb') vbox.addWidget(a) vbox.addWidget(a,alignment=Qt.AlignHCenter | Qt.AlignTop) vbox.addWidget(b,alignment=Qt.AlignHCenter | Qt.AlignBottom) self.setStyleSheet(“”) 范例{ 边框宽度:1px; 边框样式:实心; 边框颜色:红色; 最小宽度:500px; 最大宽度:500px; 最小高度:500px; 最大高度:500px; 填充:1px 1px 1px 1px; 边缘底部:30px; } QLabel{ 最小宽度:500px; 最大宽度:500px; 最小高度:50px; 最大高度:50px; 边际:0px; 填充:0px; 背景色:#cdcdcd; 文本对齐:居中对齐; } """) self.show() def paintEvent(自身,事件): super(示例,self).paintEvent(事件) opt=QStyleOption() opt.initFrom(self) 油漆工=油漆工(自身) painter.setRenderInt(QPainter.AntiAlias) self.style().drawPrimitive(QStyle.PE_小部件,opt,painter,self) def main(): app=QApplication(sys.argv) ex=示例() sys.exit(app.exec_()) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': main()Python pyqt4小部件显示在布局外部,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我想要照片中的效果。qlabel位于布局中,字体居中。下面是我写的代码,这与我想要的不同。首先,qlabel位于布局之外,其次,字体不居中 导入系统 从PyQt4.QtCore导入Qt 从PyQt4.QtGui导入QLabel、QApplication、QWidget、QVBoxLayout、QStyleOption、QPainter、QStyle 类示例(QWidget): 定义初始化(自): super(例如,self)。\uuuuu init\uuuuuuuu() self.setGeom
布局的逻辑是处理元素的几何图形,但您也在使用样式表处理几何图形,从而导致您观察到的问题。另一方面,QLabel没有文本对齐属性,但必须使用
qproperty对齐:AlignCenter代码>
为了避免这种情况,最好避免使用样式表管理几何体,但使用类的方法,考虑到解决方案是:
导入系统
从PyQt4.QtCore导入Qt
从PyQt4.QtGui导入(
QLabel,
QApplication,
QWidget,
QVBoxLayout,
QStyleOption,
油漆工,
QStyle,
)
类示例(QWidget):
定义初始化(自):
super(例如,self)。\uuuuu init\uuuuuuuu()
self.setGeometry(100100500500)
self.label_a=QLabel(“aaa”)
self.label_b=QLabel(“bbb”)
自标签设置固定高度(50)
自标签设置固定高度(50)
vbox=QVbox布局(自)
vbox.setContentsMargins(1,1,1,1)
vbox.addWidget(self.label_a)
vbox.addWidget(QWidget(),stretch=1)
vbox.addWidget(self.label_b)
自设置固定大小(500500)
自选表格(
"""
范例{
边框宽度:1px;
边框样式:实心;
边框颜色:红色;
填充:1px 1px 1px 1px;
}
QLabel{
边际:0px;
填充:0px;
背景色:#cdcdcd;
qproperty对齐:对齐中心;
}
"""
)
def paintEvent(自身,事件):
super(示例,self).paintEvent(事件)
opt=QStyleOption()
opt.initFrom(self)
油漆工=油漆工(自身)
painter.setRenderInt(QPainter.AntiAlias)
self.style().drawPrimitive(QStyle.PE_小部件,opt,painter,self)
def main():
app=QApplication(sys.argv)
ex=示例()
例如:show()
sys.exit(app.exec_())
如果名称=“\uuuuu main\uuuuuuuu”:
main()