刚开始玩这个。目前对我来说不是必须的,但仍然很好奇。有没有什么方法可以创建一个定时qmessagebox?
基本上,我有一个正在发生的循环,并且在迭代之间需要一段时间。我希望在每次迭代完成后向用户显示一个消息框,以便他们有机会取消未来的迭代。我也不希望用户必须在那里的过程中继续,所以如果说6秒过去,它将只关闭消息框并继续。
考虑到这可能有点棘手,因为消息框是模态的,并且会中断脚本的流。
有没有人有办法实现这一点?
发布于 2014-05-06 06:22:51
正如在this answer中所建议的,您可以子类QMessageBox来在显示时启动计时器。它会在完成时自动关闭。
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)https://stackoverflow.com/questions/23480333
复制相似问题