# coding=utf-8from PyQt4.QtCore import *import Tkinter as tkimport osimport timeclass MyQThread(QThread): def __init__(self, parent=None): super(MyQThread, self).__init__(parent) self.working = True self.num = 0 def __del__(self): self.working = False self.wait() def run(self): while self.working == True: file_str = 'File index {0}'.format(self.num) self.num += 1 self.sleep(10) # print 'jianpan' self.emit(SIGNAL('output(QString)'), file_str)class MyQThread_30(QThread): def __init__(self, parent=None): super(MyQThread_30, self).__init__(parent) self.working = True self.num = 0 def __del__(self): self.working = False self.wait() def run(self): while self.working == True: file_str = 'File index {0}'.format(self.num) self.num += 1 self.sleep(20) self.emit(SIGNAL('output(QString)'), file_str)class MyQThreadDelay(QThread): def __init__(self, parent=None): super(MyQThreadDelay, self).__init__(parent) self.working = True self.num = 0 def run(self): os.popen('warning.mp3') print 'finish'class MyQThread_Warning(QThread): def __init__(self, parent=None): super(MyQThread_Warning, self).__init__(parent) self.working = True self.num = 0 def run(self): # filename = r'music_delay.mp3' # mp3 = mp3play.load(filename) # mp3.play() # time.sleep(mp3.seconds()) # print mp3.isplaying() print '1' def open(self): self.root = WarningTK() self.root.mainloop() def getDlg(self): return self.root.destroy def close(self): try: self.root.quit() self.root.destroy() except Exception, e: print eclass WarningTK(tk.Tk): def __init__(self, master=None): tk.Tk.__init__(self, master) self.title('test') self.withdraw() screenwidth = self.winfo_screenwidth() screenheight = self.winfo_screenheight() - 100 self.resizable(False, False) # 添加组件 self.title("Warning!!") frame = tk.Frame(self, relief=tk.RIDGE, borderwidth=3) frame.pack(fill=tk.BOTH, expand=1) # pack() 放置组件若没有则组件不会显示 # 窗口显示的文字、并设置字体、字号 label = tk.Label(frame, text="You have been working 30 minutes! Please have a break!!", \ font="Monotype\ Corsiva -20 bold") label.pack(fill=tk.BOTH, expand=1) # 按钮的设置 self.button1 = tk.Button(frame, text="OK", font="Cooper -25 bold", fg="red", command=self.destroy) self.button1.pack(side=tk.BOTTOM) self.update_idletasks() self.deiconify() # now the window size was calculated self.withdraw() # hide the window again 防止窗口出现被拖动的感觉 具体原理未知? self.geometry( '%sx%s+%s+%s' % (self.winfo_width() + 10, self.winfo_height() + 10, (screenwidth - self.winfo_width()) / 2, (screenheight - self.winfo_height()) / 2)) self.deiconify() self.mainloop()