[PyKDE] Newbie pyQt user needs some slot help

Phil Thompson phil at river-bank.demon.co.uk
Thu Apr 27 21:23:20 BST 2000


QPopupMenu::exec() isn't a slot, it's just a member function.  You could
sub-class a QPopupMenu with a Python method called (say) showMenu which
does something like...

	def showMenu(self):
		self.exec_loop()

...and connect to it...

QObject.connect(but, SIGNAL("clicked()"), pm.showMenu)

Phil

Matthew Flower wrote:
> 
> Hi folks,
> 
> I am having a little bit of trouble and perhaps someone is listening out in radio land.  In a
> larger python application I am developing, I have a button that tries to bring up a popup menu.
> (Much in the same way that a "Start" button in windows brings up the start menu.
> 
> The problem is that I can't seem to get the exec_loop() slot to work.  My push button will make
> other slots fire (such as the quit() signal for the application), but it won't pop up the menu.  I
> have played with the QObject.Connect statement a lot, but I haven't found a way that it will work.
>  (It does work okay if I just call pm.exec_loop())
> 
> I transcribed some sample code below:
> 
> from qt import *
> import sys
> 
> App = QApplication(sys.argv)
> widg = QWidget()
> widg.setGeometry(300,300,100,35)
> but = QPushButton("Button", widg)
> pm = QPopupMenu()
> 
> pm.insertItem("First Item")
> pm.insertItem("Second Item")
> 
> QObject.connect(but, SIGNAL("clicked()"), pm, SLOT("exec_loop()"))
> 
> App.setMainWidget(widg)
> widg.show()
> App.exec_loop()
> 
> Thanks for all your help in advance.
> 
> -Matt  (MattFlower at yahoo.com)
> 
> __________________________________________________
> Do You Yahoo!?
> Talk to your friends online and get email alerts with Yahoo! Messenger.
> http://im.yahoo.com/
> 
> _______________________________________________
> PyKDE mailing list    PyKDE at mats.gmd.de
> http://mats.gmd.de/mailman/listinfo/pykde




More information about the PyQt mailing list