Перейти к содержанию

Учебник Python/PySide

Материал из Викиучебника — открытых книг для открытого мира


http://qt-project.org/wiki/PySide

Установка:

pip install -U PySide

HelloWorld

[править]
import sys
from PySide import QtGui
 
app = QtGui.QApplication(sys.argv)
 
win = QtGui.QWidget()
win.resize(320, 240)  
win.setWindowTitle("Hello, World!") 
win.show()
 
sys.exit(app.exec_())

QPushButton

[править]

http://pyside.github.io/docs/pyside/PySide/QtGui/QPushButton.html

# -*- coding: utf-8 -*-
import sys
from PySide import QtGui
from PySide.QtGui import QApplication, QMainWindow

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowTitle(u'Главное окно')    # если устанавливать значение не unicode, то будут печататься крокозябры
        self.resize(300, 200)
        self.cw = QtGui.QWidget()  # на главном окне нужно определить central widget
        self.layout = QtGui.QGridLayout()  # у central widget должна быть определена разметка, чтобы добавлять в неё gui-элементы
        self.cw.setLayout(self.layout)
        self.setCentralWidget(self.cw)
        self.pushButton = QtGui.QPushButton()
        self.pushButton.setText('Test')
        self.pushButton.clicked.connect(self.buttonTest)
        self.layout.addWidget(self.pushButton, 0, 0)
 
    def buttonTest(self):
        print ('Test OK')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    frame = MainWindow()
    frame.show()
    sys.exit( app.exec_() )

другой вариант привязки обработчика событий

[править]
from PySide import QtCore
        ...
        pushButton = QtGui.QPushButton()
        pushButton.setText('Test')
        def buttonTest():
            print 'Test OK'
        QtCore.QObject.connect(
            pushButton,
            QtCore.SIGNAL("clicked()"),
            buttonTest
        )

однострочное текстовое поле QLineEdit

[править]

http://srinikom.github.io/pyside-docs/PySide/QtGui/QLineEdit.html

        textField = QtGui.QLineEdit(self)
        self.layout.addWidget(textField, 1, 0)
получить значение контрола
textField.displayText()

таблица QTableWidget

[править]
        table = QtGui.QTableWidget(2, 3)  # (кол-во столбцов, кол-во колонок)
        self.layout.addWidget(table, 0, 1, 2, 1)