जांचें कि नीचे एक उदाहरण आपके लिए काम करेगा या नहीं। मुख्य बात CustomContextMenu को अपने विजेट के लिए set context menu policy है और विजेट के customContextMenuRequested सिग्नल से कनेक्ट:
import sys
from PyQt4 import QtGui, QtCore
class MainForm(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainForm, self).__init__(parent)
# create button
self.button = QtGui.QPushButton("test button", self)
self.button.resize(100, 30)
# set button context menu policy
self.button.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.button.customContextMenuRequested.connect(self.on_context_menu)
# create context menu
self.popMenu = QtGui.QMenu(self)
self.popMenu.addAction(QtGui.QAction('test0', self))
self.popMenu.addAction(QtGui.QAction('test1', self))
self.popMenu.addSeparator()
self.popMenu.addAction(QtGui.QAction('test2', self))
def on_context_menu(self, point):
# show context menu
self.popMenu.exec_(self.button.mapToGlobal(point))
def main():
app = QtGui.QApplication(sys.argv)
form = MainForm()
form.show()
app.exec_()
if __name__ == '__main__':
main()
स्रोत
2011-01-29 22:43:10
हाय सर्ज, आपके उत्तर के लिए धन्यवाद। ऐसा लगता है कि मेरी समस्या पूरी हो गई है। आरजीडीएस आर्थर। – ArtDijk
यदि यह आपकी समस्या हल करता है, तो कृपया अपने प्रश्न को उत्तर के रूप में चिह्नित करें, सम्मान –