![]() |
Python: Why doesn't this work?
It seems like I've spent hours today trying to get something seemingly very simple to work, but have been unable to *bangs head on table*.
I'm trying to create a class, that when called, spawns into a new thread (as to allow the calling code to keep running) and prints out the current contents of the clipboard every 2 seconds. In reality, I'll create gtk.MenuItems from the polled history, so this is more or less just a test to see if I can get the basics of the code to work. Here it is: Code:
import threading Is it because I'm not actually using the gtk mainloop? Or is the threading messing with something? This is mostly a backend class, and I didn't want to involve gtk in the first place, but there doesn't seem to be a way to access the clipboard otherwise. Any help, and suggestions on a more elegant solution, is very much needed! Thanks. |
Re: Python: Why doesn't this work?
Code:
import threading |
Re: Python: Why doesn't this work?
Hi Attila,
As far as I can tell, that still doesn't work. 2 still isn't printed (nor is the clipboard contents). |
Re: Python: Why doesn't this work?
Try calling this first:
gtk.gdk.threads_init() |
Re: Python: Why doesn't this work?
Where would that go? In __init__ or outside the class or inside a specific function? Sorry, I've never used threading before :o (which is probably painfully obvious).
|
Re: Python: Why doesn't this work?
I put it here:
Code:
if __name__ == "__main__": Clipboard().start() EDIT: I think it's only suppose to be called once per main loop. |
Re: Python: Why doesn't this work?
hey,
daperl is right, you have to initialise the thread in the main loop otherwise it would not work. BTW, where is your main loop?!? ;) To get a better understanding try this and some help tutorial how to implement it you will find here, even though I do not agree with the title of the blog entry ;) It might be easier to blog than to put it into a wiki, but it is definitely easier to find in a properly organised wiki. Actually there were so many questions related to Qt and GTK in the last couple of days which could be interesting for everyone, that I think it would be worth it to create a Qt and GTK Q&A section in the wiki as the first starting point with small issues (mostly related to maemo) or like this here...what do you think? Cheers Daniel |
Re: Python: Why doesn't this work?
Quote:
|
Re: Python: Why doesn't this work?
Thanks for all the replies! I followed everyones advice -- no seriously, I used Attila's run() function, daperl's gtk.gdk.threads_init() code, and daniel's threading and mainloop tips -- and now it actually works.
The only problem now, is I'm getting the strangest xlib crashes occasionally, I think my threading is "not quite right". I'll look into it. A round of Thanks in me! :) Edit: I (think) I fixed the crashing by wrapping all gtk calls in my clipboard class with gtk.gdk.threads_enter() and *_leave(). :) |
Re: Python: Why doesn't this work?
@Daniel:
If you think that there are some frequently asked questions about GTK/QT programming, that specifically relates to Maemo, then I think putting that in the Wiki would be great. :) |
All times are GMT. The time now is 22:59. |
vBulletin® Version 3.8.8