implor
8th May 2010, 23:50
I'm trying to do a simpel context menu but I never get the customContextMenuRequest() signal. what mistake have I done?
from test1 import Ui_Dialog
from PyQt4 import QtGui, QtCore
import sys
class mytest(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.listWidget.setSelectionMode(2)
self.ui.listWidget_2.setSelectionMode(2)
self.ui.listWidget.setContextMenuPolicy(3)
self.connect(self.ui.pushButton_3, QtCore.SIGNAL("clicked()"), self.addToList)
self.connect(self.ui.pushButton_2, QtCore.SIGNAL("clicked()"), self.rightLeft)
self.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.moveLeft)
self.connect(self.ui.lineEdit, QtCore.SIGNAL("returnPressed()"), self.addToList)
self.connect(self.ui.listWidget, QtCore.SIGNAL("customContextMenuRequest()"), self.contextMenu)
def moveLeft(self):
for Item in self.ui.listWidget.selectedItems():
self.ui.listWidget_2.addItem(Item.text())
row = self.ui.listWidget.row(Item)
self.ui.listWidget.takeItem(row)
def rightLeft(self):
for Item in self.ui.listWidget_2.selectedItems():
self.ui.listWidget.addItem(Item.text())
row = self.ui.listWidget_2.row(Item)
self.ui.listWidget_2.takeItem(row)
def contextMenu(self):
print "hello"
menu = QtGui.QMenu()
moveUp = menu.addAction("Move Up")
menu.exec_(self.ui.listWidget.mapToGlobal(QtGui.QP oint(0,0)))
def addToList(self):
Item = self.ui.lineEdit.displayText()
if Item.isEmpty() == False:
self.ui.listWidget.addItem(Item)
self.ui.lineEdit.clear()
self.ui.lineEdit.setFocus()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = mytest()
myapp.show()
sys.exit(app.exec_())
from test1 import Ui_Dialog
from PyQt4 import QtGui, QtCore
import sys
class mytest(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.listWidget.setSelectionMode(2)
self.ui.listWidget_2.setSelectionMode(2)
self.ui.listWidget.setContextMenuPolicy(3)
self.connect(self.ui.pushButton_3, QtCore.SIGNAL("clicked()"), self.addToList)
self.connect(self.ui.pushButton_2, QtCore.SIGNAL("clicked()"), self.rightLeft)
self.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.moveLeft)
self.connect(self.ui.lineEdit, QtCore.SIGNAL("returnPressed()"), self.addToList)
self.connect(self.ui.listWidget, QtCore.SIGNAL("customContextMenuRequest()"), self.contextMenu)
def moveLeft(self):
for Item in self.ui.listWidget.selectedItems():
self.ui.listWidget_2.addItem(Item.text())
row = self.ui.listWidget.row(Item)
self.ui.listWidget.takeItem(row)
def rightLeft(self):
for Item in self.ui.listWidget_2.selectedItems():
self.ui.listWidget.addItem(Item.text())
row = self.ui.listWidget_2.row(Item)
self.ui.listWidget_2.takeItem(row)
def contextMenu(self):
print "hello"
menu = QtGui.QMenu()
moveUp = menu.addAction("Move Up")
menu.exec_(self.ui.listWidget.mapToGlobal(QtGui.QP oint(0,0)))
def addToList(self):
Item = self.ui.lineEdit.displayText()
if Item.isEmpty() == False:
self.ui.listWidget.addItem(Item)
self.ui.lineEdit.clear()
self.ui.lineEdit.setFocus()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = mytest()
myapp.show()
sys.exit(app.exec_())