2012-01-31 19 views
5

मैं ड्रॉप-डाउन विजेट कैसे बना सकता हूं, जैसे ड्रॉप-डाउन QLabel, ड्रॉप-डाउन QTextBrowser इत्यादि?क्यूटी/पीईक्यूटी: मैं एक ड्रॉप डाउन विजेट कैसे बना सकता हूं, जैसे QLabel, QTextBrowser, आदि?

उदाहरण के लिए, मैं QTextBrowser में जानकारी लॉग करता हूं, लेकिन मैं नहीं चाहता कि यह स्क्रीन पर स्थान ले ले। तो मैं एक QToolbutton पर क्लिक करने में सक्षम होना चाहता हूं और एक स्क्रॉल करने योग्य QTextBrowser ड्रॉप-डाउन है। (एक QComboBox भी काम करेगा, लेकिन मैं सिर्फ एक अलग आइटम के रूप में प्रत्येक ईवेंट को जोड़ नहीं सकता - मुझे टेक्स्ट को लपेटने की ज़रूरत नहीं है, इसे कुचला नहीं जा सकता है। इस प्रकार एक ड्रॉप-डाउन QTextBrowser।)

या, उदाहरण के लिए, मैं एक ड्रॉप-डाउन QLabel एक तस्वीर युक्त, आदि ...

उत्तर

14

ड्रॉप-डाउन विजेट के लिए एक QWidgetAction बनाएँ, और में जोड़ने चाहते उपकरण बटन के menu:

from PyQt4 import QtGui, QtCore 

class Window(QtGui.QWidget): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     layout = QtGui.QHBoxLayout(self) 
     self.button = QtGui.QToolButton(self) 
     self.button.setPopupMode(QtGui.QToolButton.MenuButtonPopup) 
     self.button.setMenu(QtGui.QMenu(self.button)) 
     self.textBox = QtGui.QTextBrowser(self) 
     action = QtGui.QWidgetAction(self.button) 
     action.setDefaultWidget(self.textBox) 
     self.button.menu().addAction(action) 
     layout.addWidget(self.button) 

if __name__ == '__main__': 

    import sys 
    app = QtGui.QApplication(sys.argv) 
    window = Window() 
    window.resize(100, 60) 
    window.show() 
    sys.exit(app.exec_()) 
संबंधित मुद्दे