PyQt4 UIC Module Example
I have been really amazing myself at how much knowledge I have forgotten in the past five or six months… Most of the work I did in the past year utilized the UIC module to load UI files directly, but I can find very little information about this online. I was surprised to see that even the trusty old Rapid GUI Programming with Python and Qt book doesn’t cover loading UI files with the UIC module.
So, here is a tiny script with UI file [download] that will generate a pyqt example window that does ’stuff’:
import sys from PyQt4 import QtGui, QtCore, uic class TestApp(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.ui = uic.loadUi('X:/projects/2010/python/pyqt_tutorial/pyqt_tutorial.ui') self.ui.show() self.connect(self.ui.doubleSpinBox, QtCore.SIGNAL("valueChanged(double)"), spinFn) self.connect(self.ui.comboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), comboFn) self.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), buttonFn) def spinFn(value): win.ui.doubleSpinBoxLabel.setText('doubleSpinBox is set to ' + str(value)) def buttonFn(): win.ui.setWindowTitle(win.ui.lineEdit.text()) def comboFn(value): win.ui.comboBoxLabel.setText(str(value) + ' is selected') if __name__ == "__main__": app = QtGui.QApplication(sys.argv) win = TestApp() sys.exit(app.exec_())
Change the path to reflect where you have saved the UI file, and when you run the script you should get this:
