pygtk多執行緒更新main ui 的小程式

2021-06-06 00:28:41 字數 1872 閱讀 2317

#! /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...