想要做个定时提醒功能之类的小软件,写了下面的代码,但是只能弹出一次就自动退出了。
[code="python"]
import sys
from PyQt4 import QtGui,QtCore
import time
class MyWidget(QtGui.QWidget):
def init(self, msg, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setFixedSize(200, 120)
self.quit = QtGui.QPushButton(msg, self)
self.quit.setGeometry(62, 40, 75, 30)
self.quit.setFont(QtGui.QFont("Times", 18, QtGui.QFont.Bold))
self.connect(self.quit, QtCore.SIGNAL("clicked()"),
QtGui.qApp, QtCore.SLOT("quit()"))
def msgshow(msg):
app = QtGui.QApplication(sys.argv)
widget = MyWidget(msg)
widget.show()
sys.exit(app.exec_())
while True:
msgshow('haah')
time.sleep(3)
[/code]
不知道问题出在哪里呢?
谢谢
[code="python"]
import sys
from PyQt4 import QtGui,QtCore
import time
class MyWidget(QtGui.QWidget):
def init(self, msg, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setFixedSize(200, 120)
self.quit = QtGui.QPushButton(msg, self)
self.quit.setGeometry(62, 40, 75, 30)
self.quit.setFont(QtGui.QFont("Times", 18, QtGui.QFont.Bold))
self.connect(self.quit, QtCore.SIGNAL("clicked()"),
QtGui.qApp, QtCore.SLOT("quit()"))
def msgshow(self):
self.setVisible(True)
time.sleep(10)
self.setVisible(False)
time.sleep(10)
self.msgshow()
if name == '__main__':
app = QtGui.QApplication(sys.argv)
widget = MyWidget('haha')
widget.msgshow()
sys.exit(app.exec_())
[/code]
msgshow('haah')应该只做弹出框的功能,
[code="java"]
app = QtGui.QApplication(sys.argv)
widget = MyWidget()
sys.exit(app.exec_())
[/code]
这段代码只需执行一次
窗口无响应的话你需要起动另外一个线程来控制窗口的显示和隐藏
还是弹气泡窗口吧,对话框比较麻烦,还要点关闭等等,而且如果前面的忘了关闭的话,最后会有一堆对话框,一个个关烦都烦死。