PySide6 一个查找对话框 界面实现
PySide6 一个查找对话框 界面实现
核心
- 查找内容与输入文本 使用 标签(QLable),单行文本编辑器(QLineEdit)
- 区分大小写与循环 使用 复选框(QCheckBox)
- 方向盒子 使用 组合盒子(QGroupBox)
- 查找下一个与退出 使用 按钮(QPushButon)
- 整体使用垂直盒子布局
- 1使用水平盒子布局
- 2使用垂直盒子布局
- 3使用垂直盒子布局
- 4使用垂直盒子布局
注意
标签(QLable)需要设置伙伴关系配合单行文本编辑器(QLineEdit)
代码示例
# coding = utf-8from PySide6.QtWidgets import QDialog,QLabel,QLineEdit,QCheckBox,QGroupBox,QRadioButton,QPushButton,QVBoxLayout,QHBoxLayout,QApplication
import sysclass NotePad(QDialog):def __init__(self):"""初始化"""super().__init__()self.setupUi()self.setEvnetBind()def setupUi(self):self.setWindowTitle("查找")self.findLabel = QLabel("查找内容(&N)") # 需要设置伙伴关系self.findLineEdit = QLineEdit()self.findLabel.setBuddy(self.findLineEdit)hboxLayout = QHBoxLayout()hboxLayout.addWidget(self.findLabel)hboxLayout.addWidget(self.findLineEdit)# 区分大小写 与循环self.caseSensitiveCheck = QCheckBox("区分大小写")self.cycleCheck = QCheckBox("循环")vboxLayout = QVBoxLayout()vboxLayout.addWidget(self.caseSensitiveCheck)vboxLayout.addWidget(self.cycleCheck)# 方向 组合盒子 而不是self.directGroupBox = QGroupBox()self.directGroupBox.setTitle("方向")self.upButton = QRadioButton("向上(&U)")self.downButton = QRadioButton("向下(&D)")directVLayout = QVBoxLayout(self.directGroupBox)directVLayout.addWidget(self.upButton)directVLayout.addWidget(self.downButton)# 查找下一个与取消按钮self.findNextButton = QPushButton("查找下一个(F)")self.cancelButton = QPushButton("取消")vboxLayout_ = QVBoxLayout()vboxLayout_.addWidget(self.findNextButton)vboxLayout_.addWidget(self.cancelButton)# 全局布局 使用垂直布局gVboxLayout = QVBoxLayout(self)gVboxLayout.addLayout(hboxLayout)gVboxLayout.addLayout(vboxLayout)gVboxLayout.addWidget(self.directGroupBox)gVboxLayout.addLayout(vboxLayout_)def setEvnetBind(self):"""设置事件绑定"""# 取消按钮触发关闭self.cancelButton.clicked.connect(self.close)if __name__ == "__main__":app = QApplication(sys.argv)notePad = NotePad()notePad.show()sys.exit(app.exec())