How can I show a PyQt modal dialog and get data out of its controls once its closed?(如何显示 PyQt 模式对话框并在关闭后从其控件中获取数据?)
本文介绍了如何显示 PyQt 模式对话框并在关闭后从其控件中获取数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对于像 QInputDialog 这样的内置对话框,我读到我可以这样做:
For a built-in dialog like QInputDialog, I've read that I can do this:
text, ok = QtGui.QInputDialog.getText(self, 'Input Dialog', 'Enter your name:')
如何使用我在 Qt Designer 中自己设计的对话框来模拟这种行为?例如,我想做:
How can I emulate this behavior using a dialog that I design myself in Qt Designer? For instance, I would like to do:
my_date, my_time, ok = MyCustomDateTimeDialog.get_date_time(self)
推荐答案
这是一个简单的类,你可以用它来提示日期:
Here is simple class you can use to prompt for date:
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()
这篇关于如何显示 PyQt 模式对话框并在关闭后从其控件中获取数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:如何显示 PyQt 模式对话框并在关闭后从其控件中获取数据?
基础教程推荐
猜你喜欢
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
