I'm using Qt-desiger to make a GUI.
For example I have a QSpinbox in a QCombobox in a Groubbox.
How can i use SetValue
for my Spinbox?
how i have to "describe" the way to my Spinbox?
Asked
Active
Viewed 327 times
0

Hubschr
- 1,285
- 6
- 18
- 35
2 Answers
2
Widgets inside other Widgets do not create hierarchy in Qt, it means that if you have widget1
inside widget2
you can directly access the widget1
, like self.widget1
(and self.widget2
)
You can create a class which will contain all your widgets on your ui form as follows:
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)
...
That's all you need.

qurban
- 3,885
- 24
- 36
1
You first need to use pyuic
to generate a python module from the designer ui
file:
pyuic4 -o mainwindow_ui.py mainwindow.ui
Then import it into your application:
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_())
This will add all the widgets from Qt Designer, and make them attributes of the MainWindow
class. The attribute names will be the same as the objectName
property that was set in Qt Designer. So if the QComboBox was named "comboBox", and the QSpinBox named "spinBox", they could be accessed within the MainWindow
class like this:
self.comboBox.addItems('Foo')
self.spinBox.setValue(10)

ekhumoro
- 115,249
- 20
- 229
- 336