用户按下取消时将输入对话框重置并将输入保存到列表

Rukan Mahfuz |

我正在创建一个GUI,它将在给定范围内将用户输入作为文本。到目前为止,我所做的是获取QInputDialog来获取用户输入。但是问题是每当我单击“取消”时,它就会转到下一个输入。我想重置字段并重新开始。我也想在用户完成后将这些输入添加到列表中。

这是我的代码:

class Example(QWidget):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.le = QLabel()
        self.le.move(30, 62)
        self.le.resize(400,22)
        self.le.setText("")
        self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(290, 160, 160, 80))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton.setMaximumSize(QtCore.QSize(16777215, 150))
        font = QtGui.QFont()
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton.setFont(font)
        self.pushButton.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.showDialog)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Start"))



    def showDialog(self):
        num, ok = QInputDialog.getInt(self, 'Setup', 'How many rooms in the house?:')

        for i in range(num+1):
            name, ok = QInputDialog.getText(self, 'Setup', 'room{}:'.format(i+1))

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)  
    MainWindow = QtWidgets.QMainWindow()  
    ui = Example()  
    ui.setupUi(MainWindow)  
    MainWindow.show()
    sys.exit(app.exec_()) 
永乐

解决方案不是使用for循环,而是使用while循环,当用户按下ok按钮时索引会增加:

def showDialog(self):
    names = []
    num, ok = QtWidgets.QInputDialog.getInt(
        self, "Setup", "How many rooms in the house?:"
    )
    i = 0
    while i < num:
        name, ok = QtWidgets.QInputDialog.getText(
            self, "Setup", "room{}:".format(i + 1)
        )
        if ok:
            i += 1
            names.append(name)
    print(names)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用户取消时保存对话框

来自分类Dev

按下按钮时如何从用户复制输入字段并将其保存到变量

来自分类Dev

使python按下“输入”以确认打印对话框

来自分类Dev

如何保存来自警报对话框的用户输入?

来自分类Dev

用户输入的Android对话框

来自分类Dev

当用户在对话框旁边按下时,如何防止关闭android对话框?

来自分类Dev

用户取消对话框时选择要保存的文件夹而不使用宏

来自分类Dev

使用DialogBoxIndirect时,如何在对话框关闭时获取用户输入的文本?

来自分类Dev

在取消保存对话框时退出每个循环

来自分类Dev

在android中打开警报对话框时如何等待用户输入

来自分类Dev

单击输入框时的“ kendo日期”对话框

来自分类Dev

阻止输入对话框

来自分类Dev

如何通过对话框中的用户输入将数据值存储到数组中?

来自分类Dev

如何通过对话框中的用户输入将数据值存储到数组中?

来自分类Dev

Linux对话框用户直接输入变量

来自分类Dev

创建是/否对话框以验证用户输入

来自分类Dev

将输入保存到列表中?

来自分类Dev

AngularJS:用户通过确认对话框取消后,不能忽略输入字段上的更改事件

来自分类Dev

使用jQuery对话框时,避免将注意力集中在输入上

来自分类Dev

取消“文件输入”对话框,刷新Jasny Bootstrap文件输入中先前选择的文件

来自分类Dev

在加载时显示输入文件对话框?

来自分类Dev

输入验证失败时继续显示对话框

来自分类Dev

在使用jQuery对话框时防止专注于输入

来自分类Dev

走出输入对话框时如何禁用键盘?

来自分类Dev

打开表单时输入参数值对话框

来自分类Dev

如何使用选项对话框显示随机文本并询问用户是否希望将文本保存到文件中

来自分类Dev

聚合物:按下“确定”按钮后,获取纸张对话框中的纸张输入值

来自分类Dev

如何将按钮连接到对话框,该对话框将使用用户输入在FrameLayout中编辑TextView?

来自分类Dev

如何将 C#.NET MVC 中的用户输入数据保存到列表中?

Related 相关文章

  1. 1

    用户取消时保存对话框

  2. 2

    按下按钮时如何从用户复制输入字段并将其保存到变量

  3. 3

    使python按下“输入”以确认打印对话框

  4. 4

    如何保存来自警报对话框的用户输入?

  5. 5

    用户输入的Android对话框

  6. 6

    当用户在对话框旁边按下时,如何防止关闭android对话框?

  7. 7

    用户取消对话框时选择要保存的文件夹而不使用宏

  8. 8

    使用DialogBoxIndirect时,如何在对话框关闭时获取用户输入的文本?

  9. 9

    在取消保存对话框时退出每个循环

  10. 10

    在android中打开警报对话框时如何等待用户输入

  11. 11

    单击输入框时的“ kendo日期”对话框

  12. 12

    阻止输入对话框

  13. 13

    如何通过对话框中的用户输入将数据值存储到数组中?

  14. 14

    如何通过对话框中的用户输入将数据值存储到数组中?

  15. 15

    Linux对话框用户直接输入变量

  16. 16

    创建是/否对话框以验证用户输入

  17. 17

    将输入保存到列表中?

  18. 18

    AngularJS:用户通过确认对话框取消后,不能忽略输入字段上的更改事件

  19. 19

    使用jQuery对话框时,避免将注意力集中在输入上

  20. 20

    取消“文件输入”对话框,刷新Jasny Bootstrap文件输入中先前选择的文件

  21. 21

    在加载时显示输入文件对话框?

  22. 22

    输入验证失败时继续显示对话框

  23. 23

    在使用jQuery对话框时防止专注于输入

  24. 24

    走出输入对话框时如何禁用键盘?

  25. 25

    打开表单时输入参数值对话框

  26. 26

    如何使用选项对话框显示随机文本并询问用户是否希望将文本保存到文件中

  27. 27

    聚合物:按下“确定”按钮后,获取纸张对话框中的纸张输入值

  28. 28

    如何将按钮连接到对话框,该对话框将使用用户输入在FrameLayout中编辑TextView?

  29. 29

    如何将 C#.NET MVC 中的用户输入数据保存到列表中?

热门标签

归档