当前位置: 首页 > 面试题库 >

关闭后,如何显示PyQt模式对话框并从控件中获取数据?

盛建德
2023-03-14
问题内容

对于像QInputDialog这样的内置对话框,我读到可以做到这一点:

text, ok = QtGui.QInputDialog.getText(self, 'Input Dialog', 'Enter your name:')

如何使用在Qt Designer中设计的对话框来模拟这种行为?例如,我想做:

my_date, my_time, ok = MyCustomDateTimeDialog.get_date_time(self)

问题答案:

这是您可以用来提示输入日期的简单类:

class DateDialog(QDialog):
    def __init__(self, parent = None):
        super(DateDialog, self).__init__(parent)

        layout = QVBoxLayout(self)

        # nice widget for editing the date
        self.datetime = QDateTimeEdit(self)
        self.datetime.setCalendarPopup(True)
        self.datetime.setDateTime(QDateTime.currentDateTime())
        layout.addWidget(self.datetime)

        # OK and Cancel buttons
        buttons = QDialogButtonBox(
            QDialogButtonBox.Ok | QDialogButtonBox.Cancel,
            Qt.Horizontal, self)
        buttons.accepted.connect(self.accept)
        buttons.rejected.connect(self.reject)
        layout.addWidget(buttons)

    # get current date and time from the dialog
    def dateTime(self):
        return self.datetime.dateTime()

    # static method to create the dialog and return (date, time, accepted)
    @staticmethod
    def getDateTime(parent = None):
        dialog = DateDialog(parent)
        result = dialog.exec_()
        date = dialog.dateTime()
        return (date.date(), date.time(), result == QDialog.Accepted)

并使用它:

date, time, ok = DateDialog.getDateTime()


 类似资料:
  • 以下是我的AlertDialog无响应状态的屏幕截图: 在背景中,绿色瓷砖、黑色和白色目标中的红色球,所有三个位图都在一个渲染线程上连续渲染,该线程锁定/解锁手机上的背景画布。当我按下OK按钮时,无论我在EditText中输入了什么文本,都会执行此无响应操作。 这是代码: 游戏活动班: 由于未知原因,只有在AlertDialog之前存在准备好的活套时,AlertDialog才会执行。调用show(

  • 我正试着做这样的事。 当用户单击“+”图标时,将显示模态内部的表单。 并且当用户点击“添加成员”按钮时,模态会关闭,用户输入的输入值会显示在“+”图标的正下方。问题是,当用户再次点击“+”图标时,表单会显示出来,但当点击“添加成员”按钮时,以前的输入值会被用户输入的最新值所改变。 “+”图标 表单代码段 单击“添加成员”按钮时(我只尝试显示firstname) 我尝试了console.log(数据

  • 我正在尝试这样做: > 通过URL打开带按钮的引导对话框。控制器中Url的动作是。 通过打开对话框,这将加载一个页面(),其中包含一个表单来填充数据(表单有一个提交按钮)。 如果我通过点击按钮提交表单,在我的控制器中,我尝试关闭对话框并刷新原始页面中的一些内容,这是我用JS做的。但它不起作用。我总是用新的URL在空白处获得窗口导航器;我希望保留调用对话框的原始页面,以查看更改,方法与。 控制器的代

  • 问题内容: 我正在开发可访问性应用程序。当用户想要离开该应用程序时,我会显示一个对话框,在该对话框中他必须确认要离开,如果5秒钟后他仍未确认,则该对话框应自动关闭(因为用户可能意外打开了该对话框)。这类似于在Windows上更改屏幕分辨率时发生的情况(会出现警报,如果您没有确认,它将恢复为以前的配置)。 这是我显示对话框的方式: 显示对话框后5秒钟如何关闭对话框? 问题答案:

  • 问题内容: 加载Web视图后,我需要什么代码来创建对话框? 我试过了 没用 问题答案: :o webview.setWebViewClient(new homeClient()); homeClient() ???? 试试这个 更新:: 这是一个很好的例子。 Android WebView和不确定性进度解决方案