#! /usr/bin/env python
'''created on apr 23, 2012
@author: stedy
'''import threading
import time
import gobject
import gtk
from gtk import gdk
gtk.threads_init()
class mythread(threading.thread):
def __init__(self,button):
super(mythread, self).__init__()
self.quit = false
self.button = button
def update_label(self, counter):
# self.label.set_text("counter: %i" % counter)
self.button.set_label("%d" % counter)
return false
def run(self):
counter = 0
while not self.quit:
counter += 1
gobject.idle_add(self.update_label, counter)
time.sleep(2)
def stop(self):
self.quit = true
class mainui(gtk.window,mythread):
def __init__(self):
super(mainui,self).__init__()
win = gtk.window()
self.btn1 = gtk.button()
self.btn2 = gtk.button()
handler1 = self.btn1.connect("clicked",self.onbtnclicked)
handler2 = self.btn2.connect("clicked",self.onbtnclicked)
self.btn1.set_label("btn1")
self.btn2.set_label("btn2")
fixed = gtk.fixed()
fixed.put(self.btn1,100,30)
fixed.put(self.btn2,50,50)
win.add(fixed)
win.set_size_request(300,200)
win.set_position(gtk.win_pos_center)
win.show_all()
win.connect("destroy", lambda _: gtk.main_quit())
def onbtnclicked(self,widget,data = none):
print '\n button is on clicked'
self.t1.stop()
self.btn1.set_label("stoped")
#gtk.main_quit()
def main(self):
self.t1 = mythread(self.btn1)
self.t1.start()
self.t2 = mythread(self.btn2)
self.t2.start()
gtk.main()
if __name__ == '__main__':
tmp = mainui()
tmp.main()
易語言多執行緒大漠多執行緒模板UI更新
ui更新就是對視窗的元件超級列表框傳送讀寫,採用了封裝。大漠多執行緒模板原始碼 版本 2 支援庫 iext 子程式 ui 更新,用來更新視窗的超級列表框相關執行緒資訊 引數 主序號,整數型 引數 操作,整數型 區域性變數 列表索引,整數型 增加 如果真 操作 ui 增加 列表索引 視窗列表.插入表項...
利用python多執行緒更新資料
需求背景 從一張大表中取記錄更新另一張大表的的字段,如採用oracle直接update 好久都沒有更新完成的。處理 採用python,主線程游標查詢原始表,開啟執行緒從游標中讀取記錄,批量更新目標大表的字段。usr bin python coding utf 8 import cx oracle a...
GTK多執行緒介面更新(續
2019獨角獸企業重金招聘python工程師標準 第一,如果使用空閒函式來處理socket程式,可能會造成資料接收不及時,特別是針對一些對資料及時性要求很高的程式。因為空閒函式只會在使用者不對介面進行操作的時候 即系統空閒時 才進行。如果當前使用者正在介面上執行某項耗時的操作,而此時有資料通過soc...