2011-01-27 5 views
8

पर संदर्भ मेनू पर राइट क्लिक करें मेरे ऐप के लिए मैंने क्यूटी डिजाइनर में एक जीयूआई बनाया है और इसे पायथन (2.6) कोड में परिवर्तित कर दिया है।QPushButton

QPushButton (डिजाइनर के साथ बनाया गया) पर मैं दायाँ क्लिक संदर्भ मेनू जोड़ना चाहता हूं। मेनू विकल्प एप्लिकेशन की स्थिति पर निर्भर करते हैं।

ऐसे संदर्भ मेनू को कैसे कार्यान्वित करें?

उत्तर

14

जांचें कि नीचे एक उदाहरण आपके लिए काम करेगा या नहीं। मुख्य बात 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() 
+0

हाय सर्ज, आपके उत्तर के लिए धन्यवाद। ऐसा लगता है कि मेरी समस्या पूरी हो गई है। आरजीडीएस आर्थर। – ArtDijk

+0

यदि यह आपकी समस्या हल करता है, तो कृपया अपने प्रश्न को उत्तर के रूप में चिह्नित करें, सम्मान –

संबंधित मुद्दे