PyQt4--QThread实现界面与算法的分离--2
2011-04-08 13:40
387 查看
PyQt4实时显示的另一种实现方式
# -*- coding: utf-8 -*-
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
import os
import time
class Test(QDialog):
def __init__(self,parent=None):
super(Test,self).__init__(parent)
self.thread=Worker()
self.listFile=QListWidget()
self.btnStart=QPushButton('Start')
layout=QGridLayout(self)
layout.addWidget(self.listFile,0,0,1,2)
layout.addWidget(self.btnStart,1,1)
self.connect(self.btnStart,SIGNAL('clicked()'),self.slotStart)
self.connect(self.thread,SIGNAL('output(QString)'),self.slotAdd)
def slotAdd(self,file_inf):
self.listFile.addItem(file_inf)
def slotStart(self):
self.btnStart.setEnabled(False)
self.thread.start()
class Worker(QThread):
def __init__(self,parent=None):
super(Worker,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.emit(SIGNAL('output(QString)'),file_str)
self.sleep(3)
app=QApplication(sys.argv)
dlg=Test()
dlg.show()
sys.exit(app.exec_())
# -*- coding: utf-8 -*-
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
import os
import time
class Test(QDialog):
def __init__(self,parent=None):
super(Test,self).__init__(parent)
self.thread=Worker()
self.listFile=QListWidget()
self.btnStart=QPushButton('Start')
layout=QGridLayout(self)
layout.addWidget(self.listFile,0,0,1,2)
layout.addWidget(self.btnStart,1,1)
self.connect(self.btnStart,SIGNAL('clicked()'),self.slotStart)
self.connect(self.thread,SIGNAL('output(QString)'),self.slotAdd)
def slotAdd(self,file_inf):
self.listFile.addItem(file_inf)
def slotStart(self):
self.btnStart.setEnabled(False)
self.thread.start()
class Worker(QThread):
def __init__(self,parent=None):
super(Worker,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.emit(SIGNAL('output(QString)'),file_str)
self.sleep(3)
app=QApplication(sys.argv)
dlg=Test()
dlg.show()
sys.exit(app.exec_())
相关文章推荐
- PyQt4--QThread实现界面与算法分离
- PyQt4--QThread实现界面与算法的分离--2
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
- PyQt5 - 05 逻辑与界面分离使用pyqt5+socket实现TCP/UDP通信
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
- PyQt5 - 04 逻辑与界面分离并用sqlite3+hashlib实现登陆界面
- python3+PyQt5 实现多文档界面(MDI)
- PyQT 入门(2):实现自己的界面类
- flex中使用swc实现更好的界面代码分离
- VB6实现界面与功能代码分离
- C#实现多线程时如何将底层服务与界面表现分离?
- 【厚积薄发】编程技术项目总结2—Qt多线程实现汇总界面和底层计算分离
- flash开发中如何实现界面代码分离
- 图形界面与具体实现的分离(面向过程->面向对象)
- PyQt实现界面翻转切换效果
- C# 基于插件的开发框架实现Ribbon界面与功能的分离附DEMO
- PyQT 入门(2):实现自己的界面类
- pyqt4教程之实现半透明的天气预报界面示例
- 使用 acl 库 rpc 功能类实现 阻塞任务过程与MFC 界面过程分离
- PYTHON 实现 NBA 赛程查询工具(一)—— pyqt界面