首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定时qmessagebox?

定时qmessagebox?
EN

Stack Overflow用户
提问于 2014-05-06 03:34:53
回答 1查看 1K关注 0票数 0

刚开始玩这个。目前对我来说不是必须的,但仍然很好奇。有没有什么方法可以创建一个定时qmessagebox?

基本上,我有一个正在发生的循环,并且在迭代之间需要一段时间。我希望在每次迭代完成后向用户显示一个消息框,以便他们有机会取消未来的迭代。我也不希望用户必须在那里的过程中继续,所以如果说6秒过去,它将只关闭消息框并继续。

考虑到这可能有点棘手,因为消息框是模态的,并且会中断脚本的流。

有没有人有办法实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-05-06 06:22:51

正如在this answer中所建议的,您可以子类QMessageBox来在显示时启动计时器。它会在完成时自动关闭。

代码语言:javascript
复制
class timedMessageBox(QtGui.QMessageBox):
    def __init__(self, timeout, message):
        super(timedMessageBox, self).__init__()
        self.timeout = timeout
        timeoutMessage = "Closing in {} seconds".format(timeout)
        self.setText('\n'.join((message, timeoutMessage)))

    def showEvent(self, event):
        QtCore.QTimer().singleShot(self.timeout*1000, self.close)
        super(timedMessageBox, self).showEvent(event)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23480333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档