我正在使用Qt-designer制作GUI
例如,我在Groupbox的QCombobox中有一个QSpinbox
如何将SetValue
用于我的Spinbox?
我如何“描述”通往Spinbox的方式?
答案 0 :(得分:2)
其他窗口小部件中的窗口小部件不会在Qt中创建层次结构,这意味着如果您在widget1
内widget2
,则可以直接访问widget1
,例如self.widget1
(和self.widget2
)
您可以创建一个包含ui表单中所有小部件的类,如下所示:
from PyQt4 import uic
Form, Base = uic.loadUiType(r'path\to\your\uifile.ui') #get ui Form and Base class
class Window(Form, Base):
def __init__(self, parent = None):
#here you can access your widgets
#self.combobox.addItem('Item')
#self.spinbox.setValue(10)
...
这就是你所需要的一切。
答案 1 :(得分:1)
首先需要使用pyuic
从设计器ui
文件生成python模块:
pyuic4 -o mainwindow_ui.py mainwindow.ui
然后将其导入您的应用程序:
from PyQt4 import QtCore, QtGui
from mainwindow_ui import Ui_MainWindow
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
这将添加来自Qt Designer的所有小部件,并使它们成为MainWindow
类的属性。属性名称将与Qt Designer中设置的objectName
属性相同。因此,如果QComboBox被命名为" comboBox",而QSpinBox被命名为" spinBox",则可以在MainWindow
类中访问它们,如下所示:
self.comboBox.addItems('Foo')
self.spinBox.setValue(10)