OESF | ELSI | pdaXrom | OpenZaurus | Zaurus Themes | Community Links | Ibiblio

IPB

Welcome Guest ( Log In | Register )

> qcop not reaching Python apps
zenyatta
post Jul 13 2004, 11:08 PM
Post #1





Group: Members
Posts: 366
Joined: 4-November 03
From: Slovakia
Member No.: 850



Hi all,

I have a little problem with Python apps. Say I have a trivial PyQt application in /root/test.py:
CODE
#!/usr/bin/python
import sys
from qt import *
from qtpe import *
class MyWin(QVBox):
   def __init__(self, parent):
       QVBox.__init__(self, parent)
       self.setCaption('Test')
       label = QLabel(self)
       label.setText('Hello, world!')
app=QPEApplication(sys.argv)
win=MyWin(None)
app.setMainWidget(win)
win.show()
app.exec_loop()

I type chmod +x test.py and then ./test.py . The app runs OK but when I open another konsole session and type qcop QPE/Application/test.py 'quit()' it doesn't come through.

How do I know that QPE/Application/test.py is the right channel? When the app starts the file /tmp/qcop-msg-test.py is created. I also tried other channels like QPE/Application/python but the results are the same. The funniest thing, though, is that when I say qcop QPE/System 'quit()' the app does quit - and it is the only one to do so! Konsole continues to run, as well as the rest of Opie.

This is a major problem because the taskbar uses qcop to raise() an application when you tap its taskbar icon. So when I set up my app to be launched through an icon, it misbehaves: once it's "minimized" e.g. by pressing the Home button, there is no way to bring it back up - it has to be shut down with SIGTERM.

What I think is happening is that either the app fails to actually create a QCop channel or it creates a different one than Qtopia/Opie expects. Can anyone tell me how to find out the name of the channel a QPEApplication creates? Thanks in advance.

z.
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies
zenyatta
post Jul 14 2004, 11:31 PM
Post #2





Group: Members
Posts: 366
Joined: 4-November 03
From: Slovakia
Member No.: 850



Solved. The first argument to QPEApplication() must be the same string as the Exec value in the corresponding .desktop file. I did not actually need sys.argv[1:] to do that (my launch mechanism is a bit different).

Also, neither value should contain the full path, just the file name of the launch script (which means the launch script needs to be on the PATH).

Thanks for the pointer.

z.
Go to the top of the page
 
+Quote Post

Posts in this topic


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 18th September 2014 - 01:43 AM