Я пытаюсь написать виджет PyQt5, который будет основным менеджером предустановок внутри приложения. Я пытаюсь использовать QTreeWidget для отображения структуры каждого типа. У меня есть эта странная проблема, когда я вижу дополнительный QTreeWidget со столбцом с именем «1» за пределами моего QTreeWidget. Прикрепил картинку (извините, скриншоты сделать не удалось) и код. Я также заметил, что этого не происходит, если я не использую классы.
Вот мой тестовый код, показывающий проблему:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class MyTree(QtWidgets.QTreeWidget):
def __init__(self, parent = None):
super(self.__class__, self).__init__(parent)
boxLayout = QtWidgets.QVBoxLayout()
treeWidget = QtWidgets.QTreeWidget()
treeWidget.setHeaderLabels(['Preset Name'])
treeWidget.setColumnCount(1)
items = []
for i in range(10):
items.append(QtWidgets.QTreeWidgetItem(["item {0}".format(i)]))
treeWidget.insertTopLevelItems(0, items)
boxLayout.addWidget(treeWidget)
self.setLayout(boxLayout)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = MyTree()
w.show()
sys.exit(app.exec_())
Вот что я вижу:
Я предполагаю, что это вызвано макетом, потому что если я просто создам QTreeWidget следующим образом:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
app = QtWidgets.QApplication(sys.argv)
treeWidget = QtWidgets.QTreeWidget()
treeWidget.setHeaderLabels(['Preset Name'])
treeWidget.setColumnCount(1)
items = []
for i in range(10):
items.append(QtWidgets.QTreeWidgetItem(["item {0}".format(i)]))
treeWidget.insertTopLevelItems(0, items)
treeWidget.show()
sys.exit(app.exec_())
Вот что я вижу:
Есть идеи, как сделать так, чтобы он отображался как второе изображение из класса?
Любая помощь приветствуется