Qt for Python UiFiles: Difference between revisions
Jump to navigation
Jump to search
AutoSpider (talk | contribs) (Rename category "LanguageBindings::PySide" -> "PySide") |
(replaced <code> with <source> on multi-line-code) |
||
Line 7: | Line 7: | ||
And your mainwindow.ui | And your mainwindow.ui | ||
< | <source lang="xml"> | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<ui version="4.0"> | <ui version="4.0"> | ||
Line 49: | Line 49: | ||
<connections/> | <connections/> | ||
</ui> | </ui> | ||
</ | </source> | ||
Python can't read this ui file so to make it readable to python we need to process it with a script pyside-uic. | Python can't read this ui file so to make it readable to python we need to process it with a script pyside-uic. | ||
The command is: | The command is: | ||
Line 57: | Line 57: | ||
The generated output file "mainwindow.py" is as follows: | The generated output file "mainwindow.py" is as follows: | ||
< | <source lang="python"> | ||
#-*- coding: utf-8 -*- | #-*- coding: utf-8 -*- | ||
# Form implementation generated from reading ui file 'mainwindow.ui' | # Form implementation generated from reading ui file 'mainwindow.ui' | ||
Line 94: | Line 94: | ||
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) | MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) | ||
self.label.setText(QtGui.QApplication.translate("MainWindow", "Hello World!", None, QtGui.QApplication.UnicodeUTF8)) | self.label.setText(QtGui.QApplication.translate("MainWindow", "Hello World!", None, QtGui.QApplication.UnicodeUTF8)) | ||
</ | </source> | ||
we have to modify this mainwindow.py module: | we have to modify this mainwindow.py module: | ||
< | <source lang="python"> | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
Line 149: | Line 149: | ||
mySW.show() | mySW.show() | ||
sys.exit(app.exec_()) | sys.exit(app.exec_()) | ||
</ | </source> | ||
And to run: <code>python mainwindow.py</code> | And to run: <code>python mainwindow.py</code> |
Revision as of 19:19, 28 April 2017
This page describes the use of Qt Creator to create Graphical Interfaces for your PySide Software. You will need Qt Creator, Pyside and PySide-Tools (pyuic and pyrcc).
If you don't know how to use Qt Creator, please go to Qt Creator Widget Tutorial .
At Qt Creator, create a new Qt Design Form, choose "Main Window" for template. And save as "mainwindow.ui" . Add a Qlabel to the center of the centralwidget.
And your mainwindow.ui
<?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>82</width>
<height>64</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Hello World!</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>82</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
Python can't read this ui file so to make it readable to python we need to process it with a script pyside-uic. The command is:
pyside-uic mainwindow.ui -o mainwindow.py
The generated output file "mainwindow.py" is as follows:
#-*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created: Mon Dec 10 16:22:24 2012
# by: pyside-uic 0.2.13 running on PySide 1.1.0
#
# WARNING! All changes made in this file will be lost!
from PySide import QtCore, QtGui
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(82, 64)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.label = QtGui.QLabel(self.centralwidget)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 82, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("MainWindow", "Hello World!", None, QtGui.QApplication.UnicodeUTF8))
we have to modify this mainwindow.py module:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created: Mon Dec 10 16:22:24 2012
# by: pyside-uic 0.2.13 running on PySide 1.1.0
#
# WARNING! All changes made in this file will be lost!
import sys
from PySide import QtCore, QtGui
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(82, 64)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.label = QtGui.QLabel(self.centralwidget)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 82, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("MainWindow", "Hello World!", None, QtGui.QApplication.UnicodeUTF8))
class ControlMainWindow(QtGui.QMainWindow):
def ''init''(self, parent=None):
super(ControlMainWindow, self).''init''(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if ''name'' == "''main''":
app = QtGui.QApplication(sys.argv)
mySW = ControlMainWindow()
mySW.show()
sys.exit(app.exec_())
And to run:
python mainwindow.py