2012-01-31 7 views
5

ドロップダウンQLabel、ドロップダウンQTextBrowserなどのドロップダウンウィジェットを作成するにはどうすればよいですか?Qt/PyQt: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_())