pyqt UI 文件 - 设置类属性
Posted
技术标签:
【中文标题】pyqt UI 文件 - 设置类属性【英文标题】:pyqt UI File - set class property 【发布时间】:2020-07-22 17:17:02 【问题描述】:我有一个包含我的样式的 .qss 文件。 我像这样将它加载到我的应用程序中:
with open(_assets_folder + _css_file) as fh:
main_view.setStyleSheet(fh.read())
我的视图在一个 .ui 文件中,我像这样加载到我的应用程序中:
uic.loadUi(self._views_folder + ui_file, self)
而且我可以像这样将我的 .qss 中的类应用到我的 top_label1(并且有效):
self.top_label1.setProperty('class', 'top')
***课程在我的 .qss 文件中:
.top
color: black;
font-size: 82px;
font-weight: bold;
font-family: Arial;
qproperty-alignment: 'AlignVCenter | AlignCenter';
我的标签在我的 .ui 文件中:
<widget class="QLabel" name="top_label1">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>330</width>
<height>120</height>
</size>
</property>
<property name="baseSize">
<size>
<width>330</width>
<height>120</height>
</size>
</property>
</widget>
是否可以直接在 .ui 文件中设置类? QT 设计有什么选择吗?
我尝试(手动)添加以下内容,但没有成功:
<property name="class">
<string>top</string>
</property>
【问题讨论】:
【参考方案1】:您也可以在 Designer 的 Property Editor 中添加“dynamic properties”:
添加一个名为“class”的字符串属性并相应地设置名称值。
请注意,虽然可以使用点类选择器(假设设置了名为“class”的字符串属性),但您也可以使用自定义属性名称并使用方括号选择器;例如,在上述情况下,您还可以使用以下样式表:
QWidget[class="top"]
color: black;
font-size: 82px;
font-weight: bold;
font-family: Arial;
qproperty-alignment: 'AlignVCenter | AlignCenter';
请注意,样式表中的属性值始终是字符串,因此它们必须用引号括起来,而布尔值必须小写。 例如,如果您添加一个名为“bigFont”的布尔动态属性,样式表将如下所示:
QWidget[bigFont="true"]
font-size: 82px;
【讨论】:
以上是关于pyqt UI 文件 - 设置类属性的主要内容,如果未能解决你的问题,请参考以下文章
Pyqt5,AttributeError:模块'x_ui'没有属性'Ui_x'