2012-01-31 27 views
5

Jak utworzyć drop-down widżet, taki jak rozwijany QLabel, rozwijany QTextBrowser itp.?Qt/PyQt: Jak utworzyć rozwijany widget, taki jak QLabel, QTextBrowser itp.?

Na przykład loguję informacje w QTextBrowser, ale nie chcę, aby zajmował on miejsce na ekranie. Tak więc chcę móc kliknąć przycisk QTool i mieć przewijaną listę rozwijaną QTextBrowser. (QComboBox również by działał, ale nie mogę po prostu dodać każdego zdarzenia jako oddzielnego elementu - potrzebuję, aby tekst był zawijany, a nie rozwijany.) Tak więc rozwijany QTextBrowser.)

Lub, na przykład, chce rozwijaną QLabel zawierający obraz, itp ...

Odpowiedz

14

Utwórz QWidgetAction dla widgetu rozwijanej i dodać go do narzędzi przycisk na 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_()) 
Powiązane problemy