当我运行以下示例时,我希望QListWidget位于菜单栏的下方,但实际上它位于菜单栏的顶部。菜单栏仍然存在,可以通过使用Alt-F快捷方式将其打开来确认。
import sys
from PySide.QtGui import *
app = QApplication(sys.argv)
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
menubar = self.menuBar()
exitAction = QAction(QIcon.fromTheme('appication-exit'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit Application')
exitAction.triggered.connect(self.close)
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAction)
QListWidget(self)
def run(self):
self.show()
app.exec_()
MainWindow().run()
结果:
我无法通过使用
QVBoxLayout
来解决此问题(我尝试将菜单栏添加到QVBoxLayout
而不添加)。我正在运行pyqt 4.11.4,qt 4.8.7,pyside 1.2.4和Python 3.5。
关于如何正确放置QListWidget的任何想法?
最佳答案
您可以执行以下任一操作:
self.setCentralWidget(QListWidget(self))
要么:
widget = QWidget(self)
layout = QVBoxLayout(widget)
layout.addWidget(QListWidget(self))
self.setCentralWidget(widget)
后者可能更好,因为您无疑会想要添加更多的小部件。
关于python - 为什么将此小部件放置在菜单栏的顶部?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48725529/