Python 有没有办法在pyqt5中创建一个在单击“确定”按钮后不会关闭的输入对话框

Python 有没有办法在pyqt5中创建一个在单击“确定”按钮后不会关闭的输入对话框,python,pyqt,pyqt5,qinputdialog,Python,Pyqt,Pyqt5,Qinputdialog,有没有办法创建一个带有组合框的输入对话框,该组合框在单击“确定”按钮后不会关闭。 我试着用 setOption(QInputDialog[NoButtons,on=True]) 那没用。我尝试使用第二个窗口,但无法正确配置 另外,我是否可以在其他地方使用“确定”按钮信号作为我的逻辑?如果您想使用选项QInputDialog.NoButtons打开QInputDialog,您可以执行以下操作: dg = QInputDialog() dg.setOption(QInputDialog.NoButt

有没有办法创建一个带有组合框的输入对话框,该组合框在单击“确定”按钮后不会关闭。 我试着用

setOption(QInputDialog[NoButtons,on=True])

那没用。我尝试使用第二个窗口,但无法正确配置


另外,我是否可以在其他地方使用“确定”按钮信号作为我的逻辑?

如果您想使用选项
QInputDialog.NoButtons打开QInputDialog,您可以执行以下操作:

dg = QInputDialog()
dg.setOption(QInputDialog.NoButtons)
dg.setComboBoxItems(['Item A', 'Item B', 'Item C'])
dg.exec_()
QInputDialog类的目的是提供一种非常简单方便的方式来获取用户输入,而无需太多的定制空间。OK按钮信号始终连接到对话框的
accept
插槽。如果您想更改各种信号和插槽的设置,我建议将QDialog子类化并构建自己的。下面是一个简单的示例,当按下OK时窗口不会关闭,而只是将当前项目打印到外壳上

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_())

更好地解释自己,因为你的问题不清楚,即使它不起作用,它也会显示你已经尝试了什么。对不起,我会马上编辑它。提供一个很好的答案!非常感谢。