====== PyQt5 ====== pip install pyqt5 ==== Примеры ====
:!: Простое окно import sys from PyQt5 import QtWidgets,QtGui app = QtWidgets.QApplication(sys.argv) windows = QtWidgets.QWidget() windows.resize(500,500) windows.move(100,100) windows.setWindowTitle('Title') # set icon windows.setWindowIcon(QtGui.QIcon('icon.png')) windows.show() sys.exit(app.exec_())
==== ====
:!: Поток, прогресс бар import sys import time from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtWidgets import QWidget, QPushButton, QProgressBar, QVBoxLayout, QApplication class Thread(QThread): _signal = pyqtSignal(int) def __init__(self): super(Thread, self).__init__() def __del__(self): self.wait() def run(self): for i in range(100): time.sleep(0.1) self._signal.emit(i) class Example(QWidget): def __init__(self): super(Example, self).__init__() self.setWindowTitle('QProgressBar') self.btn = QPushButton('Click me') self.btn.clicked.connect(self.btnFunc) self.pbar = QProgressBar(self) self.pbar.setValue(0) self.resize(300, 100) self.vbox = QVBoxLayout() self.vbox.addWidget(self.pbar) self.vbox.addWidget(self.btn) self.setLayout(self.vbox) self.show() def btnFunc(self): self.thread = Thread() self.thread._signal.connect(self.signal_accept) self.thread.start() self.btn.setEnabled(False) def signal_accept(self, msg): self.pbar.setValue(int(msg)) if self.pbar.value() == 99: self.pbar.setValue(0) self.btn.setEnabled(True) if __name__ == "__main__": app = QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_())
==== ====
:!: Форма Qml, связь сигнало-слота Подключение модулей нужно проверить, есть лишние import sys, time from PySide2 import QtWidgets from PySide2.QtQml import QQmlApplicationEngine from PySide2.QtCore import QObject, Slot from PySide2.QtQuick import QQuickView from PySide2.QtGui import QGuiApplication class Messenger(QObject): @Slot(str) def PrintMessage(self, message): print('Your message: "'+ message +'"') app= QGuiApplication(sys.argv) view= QQmlApplicationEngine('win.qml') mes = Messenger() ctx = view.rootContext() ctx.setContextProperty("messenger", mes) sys.exit(app.exec_()) import QtQuick 2.2 import QtQuick.Window 2.1 import QtQuick.Controls 1.2 import QtQuick.Dialogs 1.1 ApplicationWindow { visible: true; width: 360; height: 360 Rectangle { id: button width: 150; height: 40 color: "darkgray" anchors.horizontalCenter: page.horizontalCenter y: 120 MouseArea { id: buttonMouseArea objectName: "buttonMouseArea" anchors.fill: parent onClicked: { messenger.PrintMessage("da suka daaaa sukaaa") } } Text { id: buttonText text: "Press me!" anchors.horizontalCenter: button.horizontalCenter anchors.verticalCenter: button.verticalCenter font.pointSize: 16 } } }
==== ====
:!: