notes/Python GTK with very simple Threading-JzPCev1B.py
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk,os,thread
class BasicButtons():
def msg(self, widget, msg):
print(msg + " was clicked")
if msg == "Exit":
self.destroy(widget)
elif msg == "Get Files":
thread.start_new_thread(self.list_files,("/media","Files:"))
elif msg == "Print Files":
for f in self.files:
print(f)
def list_files(self, dir, msg):
print(msg)
self.files = []
for root, dirnames, filenames in os.walk(dir):
self.files += filenames
def destroy(self, widget, data=None):
print("Destroyed!")
print("What a world!\nWhat a world!")
gtk.main_quit()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("destroy", self.destroy)
self.window.set_border_width(10)
self.window.set_size_request(720,480)
self.window.set_position(gtk.WIN_POS_CENTER)
self.window.set_title("My GTK Button Program")
self.box = gtk.VBox()
self.window.add(self.box)
self.box.show()
self.buttons = ['On','Off','Next','Prev', 'Get Files', 'Print Files', 'Exit']
for b in self.buttons:
self.button = gtk.Button(b)
self.button.connect("clicked", self.msg, b)
self.box.pack_start(self.button)
self.button.show()
self.window.show()
def main(self):
gtk.main()
if __name__ == "__main__":
Buttons = BasicButtons()
Buttons.main()
syntax highlighted by Code2HTML, v. 0.9.1