闽公网安备 35020302035485号

3.使用示例及运行效果

pip install PySide6二、相关组件介绍



button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok
| QDialogButtonBox.StandardButton.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
具体属性、方法及信号等请参考官方文档。



import os,sys,datetime
from PySide6 import QtCore
from PySide6.QtWidgets import (QApplication, QComboBox, QDialog,
QDialogButtonBox, QGridLayout, QGroupBox,
QFormLayout, QHBoxLayout, QLabel, QLineEdit,
QMenu, QMenuBar, QPushButton, QSpinBox,
QTextEdit, QVBoxLayout)
class Dialog(QDialog):
def __init__(self):
super().__init__()
self.create_menu()
self.create_hold_box()
self.big_editor = QTextEdit()
button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok
| QDialogButtonBox.StandardButton.Cancel)
button_box.accepted.connect(self.accept)
button_box.rejected.connect(self.reject)
main_layout = QVBoxLayout()
main_layout.setMenuBar(self._menu_bar)
main_layout.addWidget(self.hGroupBox)
main_layout.addWidget(self.big_editor)
main_layout.addWidget(button_box)
self.setLayout(main_layout)
self.setWindowTitle("dialog test1")
self.big_editor.setPlainText(str(datetime.datetime.now()) + " init ok")
def appenLogMsg(self,msg):
now = datetime.datetime.now()
curMsg = str(now) + " " + msg
self.big_editor.append(curMsg)
self.big_editor.moveCursor(QtGui.QTextCursor.End)
def create_menu(self):
self._menu_bar = QMenuBar()
self._file_menu = QMenu("&File", self)
self._exit_action = self._file_menu.addAction("Exit")
self._menu_bar.addMenu(self._file_menu)
self._exit_action.triggered.connect(self.accept)
def create_hold_box(self):
self.hGroupBox = QGroupBox("hold/unHold")
layout = QHBoxLayout()
self.btnHold = QPushButton("Hold")
self.btnUnHold = QPushButton("unHold")
layout.addWidget(self.btnHold)
layout.addWidget(self.btnUnHold)
self.hGroupBox.setLayout(layout)
self.btnHold.clicked.connect(self.actionHold)
self.btnUnHold.clicked.connect(self.actionUnHold)
@QtCore.Slot()
def actionHold(self):
self.appenLogMsg("do hold")
@QtCore.Slot()
def actionUnHold(self):
self.appenLogMsg("do unhold")
// 堆代码 duidaima.com
if __name__ == "__main__":
app = QApplication([])
dialog = Dialog()
dialog.resize(800, 600)
sys.exit(dialog.exec())
运行效果如下: