class Dan: def __init__(self): self.url = "http://www.bibud.com" self.setupWindow() self.setupBrowser() main() def setupWindow(self): self.window_title = "Bibud" self.window = Window() self.window.show() self.window.connect("destroy-event", self.browser_quit) self.window.resize(1024, 768) self.window.set_title(self.window_title) def setupBrowser(self): self.browser = WebView() self.browser.show() self.browser.open(self.url) self.scroller = ScrolledWindow() self.scroller.add(self.browser) self.window.add(self.scroller) self.browser.connect("title-changed", self.title_changed) self.scroller.show() def eTitleChanged(self, webview, frame, title): self.window.set_title(title) def eQuit(self): main_quit()
class Dan: def __init__(self): self.url = "http://www.bibud.com" self.setupWindow() self.setupBrowser() main() def setupWindow(self): self.window_title = "Bibud" self.window = Window() self.window.show() self.window.connect("destroy-event", self.browser_quit) self.window.resize(1024,768) self.window.set_title(self.window_title) def setupBrowser(self): self.browser = WebView() self.browser.show() self.browser.open(self.url) self.scroller = ScrolledWindow() self.scroller.add(self.browser) self.window.add(self.scroller) self.browser.connect("title-changed", self.title_changed) self.scroller.show() def eTitleChanged(self, webview, frame, title): self.window.set_title(title) def eQuit(self): main_quit()
def show(self): import gtk from gtk import Window, Label w = Window() w.set_size_request(*self.resolution) l = gtk.Label('Coordinates') w.add(l) l.show() w.add_events(gtk.gdk.EXPOSURE_MASK | gtk.gdk.LEAVE_NOTIFY_MASK | gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK) def configure_event(widget, event): pass def button_release_event(widget, event): if event.button == 1: print "unclick" self.server.send('u', 1, event.x, event.y) return True def button_press_event(widget, event): if event.button == 1: print "click" self.server.send('d', 1, event.x, event.y) return True def motion_notify_event(widget, event): if event.is_hint: x, y, state = event.window.get_pointer() else: print "no hint" x, y, state = event.x, event.y, event.state l.set_text("(%d,%d)" % (x, y)) print "Event number %d, (%d,%d)" % (event.type, x, y) self.server.send('.', 1, event.x, event.y) return True w.connect("configure_event", configure_event) w.connect("motion_notify_event", motion_notify_event) w.connect("button_press_event", button_press_event) w.connect("button_release_event", button_release_event) w.connect("delete_event", gtk.main_quit) if self.fullscreen: w.fullscreen() w.show() self.server.resolution = w.get_size() gtk.main()
def show(self): import gtk from gtk import Window, Label w = Window() w.set_size_request(*self.resolution) l = gtk.Label('Coordinates') w.add(l) l.show() w.add_events(gtk.gdk.EXPOSURE_MASK | gtk.gdk.LEAVE_NOTIFY_MASK | gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK) def configure_event(widget, event): pass def button_release_event(widget, event): if event.button == 1: print "unclick" self.server.send('u', 1, event.x, event.y) return True def button_press_event(widget, event): if event.button == 1: print "click" self.server.send('d', 1, event.x, event.y) return True def motion_notify_event(widget, event): if event.is_hint: x, y, state = event.window.get_pointer() else: print "no hint" x, y, state = event.x, event.y, event.state l.set_text("(%d,%d)" % (x,y)) print "Event number %d, (%d,%d)" % (event.type, x, y) self.server.send('.', 1, event.x, event.y) return True w.connect("configure_event", configure_event) w.connect("motion_notify_event", motion_notify_event) w.connect("button_press_event", button_press_event) w.connect("button_release_event", button_release_event) w.connect("delete_event", gtk.main_quit) if self.fullscreen: w.fullscreen() w.show() self.server.resolution = w.get_size() gtk.main()
if machine not in self.pages: self.append_page(text, machine) self.set_current_page(machine) def _print_items(self, machine, raw=True): slines = _itemlines(self.cfg, machine, SYSOPTS, raw=raw) dblines = _itemlines(self.cfg, machine, DBOPTS, raw=raw) mnlines = _itemlines(self.cfg, machine, MAINOPTS, raw=raw) mclines = _itemlines(self.cfg, machine, MACHOPTS, raw=raw) umlines = _itemlines(self.cfg, machine, UMLOPTS, raw=raw) xumlines = _itemlines(self.cfg, machine, XUMLOPTS, raw=raw) alllines = [slines, dblines, mnlines, mclines, umlines, xumlines] sep = '\n\n------------------\n\n' text = sep.join(['\n'.join(lines) for lines in alllines]) + '\n' return text if __name__ == '__main__': from gtk import Window cfg = get_machines_config() sections = cfg.sections() print sections #d.set_rows([dict(section=x) for x in sections]) m = MachineBrowser(cfg) win = Window() win.add(m) win.show() win.connect('destroy', mainquit) mainloop()
self.vbox = VBox() self.add_with_viewport(self.vbox) HasRecordBox.__init__(self, self.vbox, data, name=name) self.vbox.show() self.show() self.vbox.set_events(BUTTON_PRESS_MASK) class CommandBox(VBox, HasMenuBar): def __init__(self, name='CommandBox'): VBox.__init__(self) self.set_name(name) self.tbar = HandleToolbar() self.menubar = SimpleMenuBar() self.pack_start(self.menubar, FALSE, FALSE, 0) self.pack_end(self.tbar, FALSE, FALSE, 0) self.show() if __name__ == '__main__': import paella.gtk from gtk import mainloop, mainquit from paella.base.util import file2str from gtk import Window tt = TextTemplater(file2str('/etc/debconf.conf')) win = Window() win.add(tt) win.show() win.connect('destroy', mainquit) mainloop()
class Base(object): def __init__(self): from gtk import Window,WINDOW_TOPLEVEL,Button,Label,HBox,Entry,VBox,VSeparator self.window = Window(WINDOW_TOPLEVEL) self.window.set_title("Slideshow") self.window.connect("delete_event", self.delete_event) self.window.set_border_width(10) self.vbox = VBox(False, 0) self.window.add(self.vbox) self.hbox1 = HBox(False, 0) self.vbox.pack_start(self.hbox1, True, True, 1) self.hbox = HBox(False, 0) self.vbox.pack_start(self.hbox, False, False, 1) self.hbox2 = HBox(False, 0) self.vbox.pack_start(self.hbox2, True, True, 1) self.label = Label('Identifikační číslo:') self.hbox.pack_start(self.label, False, False, 1) self.label.show() self.editable = Entry() self.editable.connect('key_press_event', self.key_press_event) self.hbox.pack_start(self.editable, True, True, 1) self.editable.show() self.button = Button("Začít") self.button.connect("clicked", self.callback) self.button.set_receives_default(True) self.button.set_can_focus(True) self.hbox.pack_start(self.button, False, False, 1) self.button.show() self.hbox1.show() self.hbox.show() self.hbox2.show() self.vbox.show() self.window.show() def delete_event(self, widget, event, data=None): gtk.main_quit() return False def key_press_event(self, widget, event): from gtk.gdk import keyval_from_name,keyval_name if event.keyval in (keyval_from_name('Return'),keyval_from_name('KP_Enter')): self.callback(widget) def _getFilePaths(self, fileTypes, recursive=True): import os import re from sys import argv pt = re.compile(r'.*([%(0)s][^%(0)s]*)'%{'0':os.path.extsep}) path = [a for m,a in ((pt.match(os.path.basename(a)),a) for a in argv[1:]) if m and m.group(1) in fileTypes] if not path: path = '/home/pi/img/*.jpg' if isinstance(path, str): ## Returns list containing paths of files in /path/ that are of a file type in /fileTypes/, ## if /recursive/ is False subdirectories are not checked. paths = [] if recursive: for root, folders, files in os.walk(path, followlinks=True): for file in files: for fileType in fileTypes: if file.endswith(fileType): paths.append(os.path.join(root, file)) else: for item in os.listdir(path): for fileType in fileTypes: if item.endswith(fileType): paths.append(os.path.join(root, item)) return paths elif iterable(path): return path else: return [] def _init_cb(self,trans): from threading import Thread if not iterable(trans): trans = trans, callbacks = [] for name,cb in trans: t = Thread(target=cb, name='%sThread'%name) t.daemon = True t.start() callbacks.append(cb.enqueue) def wrap(msg): for cb in callbacks: if not cb(msg): return False return True return wrap def callback(self, widget): from slideshow import SlideShow from trans import Message,GpioTransceiver,JsonTransceiver if not self.editable.get_text(): return False img_cbs = self._init_cb([('ImgGpioCallback',GpioTransceiver(24)),('ImgJsonCallback',JsonTransceiver('img.json'))]) kp_cbs = self._init_cb([('KpGpioCallback',GpioTransceiver(26,bcd=False)),('KpJsonCallback',JsonTransceiver('kp.json'))]) def ordfnc(path): from numpy.random import permutation gray = path[0] result = [] for p in permutation(path[1:]): result.append(p) result.append(gray) return result slide = SlideShow( path=self._getFilePaths(('.jpg', '.jpeg', '.png')), transition='None', fullscreen=True, delay=5, order=ordfnc, principal=self.editable.get_text(), img_callback = img_cbs, kp_callback = kp_cbs, ) self.editable.set_text('') slide() def __call__(self): gtk.main()