使用PySide2更改Qt .ui文件中的组合框值

真相

我正在使用PySide2加载Qt Designer .ui文件。我有一个名为categoryBox的组合框,它是MainWindow.centralwidget的子级

我想使用Python将其内容替换为列表,而不更改.ui文件本身。但是,我不知道如何找到组合框,这在更换时很重要。

简而言之,我有一个组合框。我不知道在哪里可以找到它,但是我知道它在哪里。

.ui文件中的相关XML数据:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>799</width>
    <height>513</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>BlueCalculator</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <widget class="QLabel" name="titleLabel">
    <property name="geometry">
     <rect>
      <x>20</x>
      <y>10</y>
      <width>231</width>
      <height>51</height>
     </rect>
    </property>
    <property name="font">
     <font>
      <pointsize>26</pointsize>
     </font>
    </property>
    <property name="text">
     <string>BlueCalculator</string>
    </property>
   </widget>
   <widget class="QComboBox" name="categoryBox">
    <property name="geometry">
     <rect>
      <x>20</x>
      <y>80</y>
      <width>221</width>
      <height>21</height>
     </rect>
    </property>
   </widget>

打开.ui文件的代码:

import sys, os
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication
from PySide2.QtCore import QFile, QIODevice
import os
rootdir = '.\\functions'


if __name__ == "__main__":
app = QApplication(sys.argv)

ui_file_name = "main.ui"
ui_file = QFile(ui_file_name)
if not ui_file.open(QIODevice.ReadOnly):
    print("Cannot open {}: {}".format(ui_file_name, ui_file.errorString()))
    sys.exit(-1)
loader = QUiLoader()
window = loader.load(ui_file)
ui_file.close()
if not window:
    print(loader.errorString())
    sys.exit(-1)
window.show()

sys.exit(app.exec_())
永乐

使用QUiLoader时,使用objectName将所有对象分配为窗口的属性,在这种情况下,您应该使用:

window.categoryBox.addItems(["Foo", "Bar"])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用PySide2在Qt-Designer中嵌入PyQtGraph

如何使用PySide2在QWizardPage中加载Qt设计器文件(.ui)

使用Qt Designer在PySide2中实现信号/插槽时出错

如何在PySide2中更改图形的颜色

如何使用PySide2在qml中设置值?

如何使用程序 Qt Designer 将 QWidget 放在中间而不依赖于 Pyside2 中的屏幕尺寸?

如何使用PySide2使我的选择框正确移动?

使用PySide2从资源(QRC)文件导入QML

如何使用PySide2在matplotlib中显示图形?

如何在qml或PySide2中更改XYSeries中的所有点?

如何使用PyQt5 / PySide2显示熊猫数据框

使用PySide2的文件浏览器:获取文件的路径,然后终止GUI

使用PySide2将python信号连接到QML ui插槽

使用PyInstaller打包后,PySide2应用程序中的路径错误

如何在PySide2中使用QLabel加载图像

使用QComboBox选择在PyQt5 / PySide2中显示的不同小部件集

如何使用PySide2 Python后端将PyQtGraph嵌入QML中?

使用PySide2中的自定义图像提供程序处理16位灰度图像

使用PyQtGraph和PySide2中的ImageView固定文本位置

在PySide2中将.py文件用于UI文件的好处?

PySide2在文件对话框中显示与主窗口相同的图标

Pyside2 - 更改字體系列/大小時代碼編輯器中的行號不正確

使用Qt Designer时显示PySide2 QCharts

Pyside2 中的 2D 可点击表面

使用 Pyside2 - Python3 更改设计

如何使用 PySide2 将具有 NULL 值的记录添加到我的 SQLite 数据库?

在编辑表单中从组合框更改选定的值

小部件在GridLayout PySide2中彼此重叠

如何传递要在Pyside2中调用的函数?