Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Pomoc s aplikací

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Pomoc s aplikací

Autor: pleytwak

21:41:01 11.01.2011

tak odchycení události změny obsahu schránky by mělo být:

[code]
...
def OnClipChange(self, clipboard, event):
print "change"

def __init__(self):
...
self.clipboard = gtk.clipboard_get()
self.clipboard.connect('owner-change', self.OnClipChange)
...
[/code]

Citovat příspěvek

 

Re: Pomoc s aplikací

Autor: pleytwak

11:03:58 11.01.2011

takto nějak by mohlo vypadat použití timeru v PyGTK s vyvoláním události OnTimer každou sekundu:
[code]
import gtk
import gobject

class AppWin:
def OnTimer(self):
print "timer event"
return True

def OnDestroy(self, widget, data=None):
gobject.source_remove(self.timer_id)
gtk.main_quit()

def __init__(self):
global timer
self.window = gtk.Window()
self.window.connect("destroy", self.OnDestroy)
self.timer_id = gobject.timeout_add(1000, self.OnTimer)
self.window.show_all()

win = AppWin()
gtk.main()
[/code]
ale použití timeru pro kontrolu změny obsahu schránky není dobrým postupem. Obecně by bylo lepší obsluhovat nějakou událost, která se vyvolá při změně obsahu schránky, ale nezkoumal jsem jak se to v GTK řeší...

Citovat příspěvek

 

Re: Pomoc s aplikací

Autor: sunamo

21:24:51 29.12.2010

http://snipt.org/vVy/

Citovat příspěvek

 

Re: Pomoc s aplikací

Autor: sunamo

21:20:46 29.12.2010

V příloze je požadovaný formátováný zdroják

Citovat příspěvek

 

Re: Pomoc s aplikací

Autor: eee

20:23:06 27.12.2010

dej sem ten zdrojak formatovane

Citovat příspěvek

 

Pomoc s aplikací

Autor: sunamo

19:41:39 27.12.2010

Jsem naprostý začátečník v pythonu a zkouším udělat aplikaci, která by kontrolovala schránku a v případě že by se změnila by to projevila do TextView PyGTK prvku programu:

import gtk
import threading
import thread
from threading import Event, Thread



def refreshLog(self):
global textview2
buffer = textview.get_buffer()
buffer.set_text("test2")
global timer
timer = threading.Timer(1.0, refreshLog)
timer.start()

def refreshLog():
global textview2
buffer = textview2.get_buffer()
buffer.set_text("test2")
global timer
timer = threading.Timer(1.0, refreshLog)
timer.start()


class TextViewBasic:
def __init__(self):

window = gtk.Window()
window.set_default_size(-1, 350)

vbox = gtk.VBox(False, 5)
scrolledwindow = gtk.ScrolledWindow()
scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
table = gtk.Table(3, 3, False)

self.textview = textview2
textbuffer = self.textview.get_buffer()
self.textview.get_buffer().set_text("test")
check_editable = gtk.CheckButton("Editable")
check_editable.set_active(True)
check_cursor = gtk.CheckButton("Cursor Visible")
check_cursor.set_active(True)
radio_wrapnone = gtk.RadioButton(None, "No Wrapping")
radio_wrapchar = gtk.RadioButton(radio_wrapnone, "Character Wrapping")
radio_wrapword = gtk.RadioButton(radio_wrapnone, "Word Wrapping")
radio_justifyleft = gtk.RadioButton(None, "Justify Left")
radio_justifycenter = gtk.RadioButton(radio_justifyleft, "Justify Center")
radio_justifyright = gtk.RadioButton(radio_justifyleft, "Justify Right")

table.attach(check_editable, 0, 1, 0, 1)
table.attach(check_cursor, 0, 1, 1, 2)
table.attach(radio_wrapnone, 1, 2, 0, 1)
table.attach(radio_wrapchar, 1, 2, 1, 2)
table.attach(radio_wrapword, 1, 2, 2, 3)
table.attach(radio_justifyleft, 2, 3, 0, 1)
table.attach(radio_justifycenter, 2, 3, 1, 2)
table.attach(radio_justifyright, 2, 3, 2, 3)

window.connect("destroy", lambda w: gtk.main_quit())
check_editable.connect("toggled", self.toggle_editable)
check_cursor.connect("toggled", self.toggle_cursor)
radio_wrapnone.connect("toggled", self.configure_wrap, gtk.WRAP_NONE)
radio_wrapchar.connect("toggled", self.configure_wrap, gtk.WRAP_CHAR)
radio_wrapword.connect("toggled", self.configure_wrap, gtk.WRAP_WORD)
radio_justifyleft.connect("toggled", self.configure_justification, gtk.JUSTIFY_LEFT)
radio_justifycenter.connect("toggled", self.configure_justification, gtk.JUSTIFY_CENTER)
radio_justifyright.connect("toggled", self.configure_justification, gtk.JUSTIFY_RIGHT)

window.add(vbox)
vbox.pack_start(scrolledwindow, True, True, 0)
vbox.pack_end(table, False, False, 0)
scrolledwindow.add(self.textview)

window.show_all()

def toggle_editable(self, widget):
self.textview.set_editable(widget.get_active())

def toggle_cursor(self, widget):
self.textview.set_cursor_visible(widget.get_active())

def configure_wrap(self, widget, wrap):
self.textview.set_wrap_mode(wrap)

def configure_justification(self, widget, justification):
self.textview.set_justification(justification)

textview2 = gtk.TextView()
timer = threading.Timer(1.0, refreshLog)
timer.start()
TextViewBasic()
gtk.main()

Toto je nejdál kde jsem se dostal, Program se mi zobrazí, ale běží i po ukončení. To by mi tak moc nevadilo - to co nemůžu zprovoznit je aby timer pracoval - neproběhne ani jednou. Jsem na Ubuntu 10.10, pokud na tomto záleží... Děkuji všem za hodnotné odpovědi.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: