2024-06-01 02:10:23 发布
网友
有没有办法创建一个带有组合框的输入对话框,该组合框在单击“确定”按钮后不会关闭。 我试着用
QInputDialog.setOption(QInputDialog[NoButtons, on=True])
那没用。我尝试使用第二个窗口,但无法正确配置
还有,我是否可以在其他地方使用OK按钮信号作为我的逻辑
如果要打开带有选项QInputDialog.NoButtons的对话框,可以执行以下操作:
QInputDialog.NoButtons
dg = QInputDialog() dg.setOption(QInputDialog.NoButtons) dg.setComboBoxItems(['Item A', 'Item B', 'Item C']) dg.exec_()
QInputDialog类的目的是提供一种非常简单方便的方式来获取用户输入,而无需太多的定制空间。OK按钮信号始终连接到对话框的accept插槽。如果您想更改各种信号和插槽的设置,我建议将QDialog子类化并构建自己的。下面是一个简单的示例,当按下OK时窗口不会关闭,而只是将当前项目打印到外壳上
accept
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class CustomDialog(QDialog): item_selected = pyqtSignal(str) def __init__(self, items, *args, **kwargs): super().__init__(*args, **kwargs) self.box = QComboBox() self.box.addItems(items) btn = QPushButton('Ok') btn.clicked.connect(self.ok_pressed) vbox = QVBoxLayout(self) vbox.addWidget(self.box) vbox.addWidget(btn) def ok_pressed(self): self.item_selected.emit(self.box.currentText()) class Template(QWidget): def __init__(self): super().__init__() dg = CustomDialog(['Item A', 'Item B', 'Item C'], self) dg.item_selected[str].connect(self.do_something) dg.exec_() def do_something(self, item): print(item) if __name__ == '__main__': app = QApplication(sys.argv) gui = Template() gui.show() sys.exit(app.exec_())
如果要打开带有选项
QInputDialog.NoButtons
的对话框,可以执行以下操作:QInputDialog类的目的是提供一种非常简单方便的方式来获取用户输入,而无需太多的定制空间。OK按钮信号始终连接到对话框的
accept
插槽。如果您想更改各种信号和插槽的设置,我建议将QDialog子类化并构建自己的。下面是一个简单的示例,当按下OK时窗口不会关闭,而只是将当前项目打印到外壳上相关问题 更多 >
编程相关推荐