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())运行效果如下: