安装
1 2 3
| pip install pyqt5
pip install PyQt5-tools
|
导入包
1
| from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit
|
常用组件
QApplication
1 2
| app = QApplication([]) app.exec_()
|
通用方法
1 2
| window.resize(500, 400) window.move(300, 310)
|
QMainWindow
1 2 3
| window = QMainWindow() window.setWindowTitle('') window.show()
|
QLineEdit
单行文本
1 2 3 4
| text = edit.text() edit.setPlaceholderText('') edit.setText('') edit.clear()
|
QPlainTextEdit
多行纯文本框
1 2 3 4 5 6 7
| textEdit = QPlainTextEdit(window) textEdit.setPlaceholderText("") info = textEdit.toPlainText()
textCursor = edit.textCursor() selection = textCursor.selectedText()
|
后续处理
1 2 3 4
| for line in info.splitlines(): if not line.strip(): continue parts = line.split(' ')
|
QTextBrowser
文本浏览框, 只读。
一般操作同上。
1 2 3 4 5 6
| textBrowser.append('你好,白月黑羽') textBrowser.ensureCursorVisible()
edit.insertPlainText('')
|
QLabel
QComboBox
组合选择框
1 2 3 4
| cbox.currentIndexChanged.connect(handleSelectionChange) cbox.addItem('') cbox.addItems([]) method = cbox.currentText()
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| button = QPushButton('name', window) button.clicked.connect(func) button.setText(text) button.setEnabled(True)
from PySide2.QtCore import Qt,QSize from PySide2.QtGui import QIcon
button.setIcon(QIcon('logo.png'))
button.setIconSize(QSize(30, 30))
|
QMessageBox
1 2 3 4 5
| QMessageBox.about(window, '统计结果', f'''薪资20000 以上的有:\n{salary_above_20k} \n薪资20000 以下的有:\n{salary_below_20k}''' )
|
布局
Layout
1 2 3 4 5 6 7
| hl = QtWidgets.QHBoxLayout() vl = QtWidgets.QVBoxLayout() gl = QtWidgets.QGridLayout()
hl.addWidget(button1) self.setLayout(hl) layout.addLayout(hl)
|
QMainWindow 的中央控件
1 2 3 4 5
| centralWidget = QtWidgets.QWidget(self) self.setCentralWidget(centralWidget)
mainLayout = QtWidgets.QVBoxLayout(centralWidget)
|
窗口切换
一个思路是用两个类,初始化另一窗口,关闭当前窗口。
1 2 3 4 5 6 7
| def open_new_window(self): self.window2 = Window2() self.window2.show() self.close()
|
另一思路用hide()隐藏窗口。
弹出模式对话框
使用 QDialog 组件,打开后会阻塞父窗口,关闭后恢复。
1 2
| dlg = MyDialog() dlg.exec_()
|
常用信号
1 2 3 4
| clicked textChanged returnPressed cursorPositionChanged
|