def __init__(self,parent=None):
QMainWindow.__init__(self,parent)
self.setWindowTitle("test")
self.createActions()
self.mainWidget=QWidget(self)
self.mainLayout = QHBoxLayout(self.mainWidget)
self.createListView()
self.lv.setMinimumSize(200,200)
self.textEdit = QTextEdit()
self.textEdit.setMinimumSize(200,200)
self.mainLayout.addWidget(self.lv)
self.mainLayout.addWidget(self.textEdit)
这一切所做的就是创建一个带有工具栏的窗口,并将两个小部件放入 QHBoxLayout、一个 QListView 和一个 QTextEdit 中。然而出于某种原因,这三件事似乎是重叠的。 (工具栏在小部件下方可见)
最佳答案
您需要将这些小部件和布局放在 QMainWindow
的中央小部件中。下面是 QMainWindow
的组成:
(图片来自PyQt文档:http://pyqt.sourceforge.net/Docs/PyQt4/qmainwindow.html#centralWidget)
在您的情况下,解决方案是将 QHBoxLayout
设置为中央小部件的布局:
self.centralwidget.setLayout(self.mainLayout)
(无需创建另一个QWidget
来保存它,您可以利用现有的中央小部件。)
关于python - 为什么我的 PyQt 小部件重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29408878/