2012-01-31 2 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_()) 
관련 문제