如何创建一个下拉小部件,例如下拉QLabel,下拉QTextBrowser等?

例如,我将信息记录在QTextBrowser中,但是我不希望它占用屏幕空间。因此,我希望能够单击QToolbutton并具有可滚动的QTextBrowser下拉菜单。 (一个QComboBox也可以,但我不能只是将每个事件添加为单独的项目-我需要包装文本,而不是将其删除。因此是一个下拉QTextBrowser。)

或者,例如,我想要一个包含图片的下拉QLabel,等等。

最佳答案

为下拉窗口小部件创建一个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_())

关于python - Qt/PyQt : How do I create a drop down widget,,例如QLabel,QTextBrowser等?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9076332/

10-10 00:04