QTreeWidget Как добавить пользовательские элементы управления внутри 1 столбца 9umn? ⇐ C++
QTreeWidget Как добавить пользовательские элементы управления внутри 1 столбца 9umn?
Я хочу создать систему слоев, подобную Photoshop, с использованием QTreeWidget, поскольку она допускает групповую структуру.
Вот что я хочу добавить:
Горизонтальный макет: [Значок, LineEdit, Флажок] Однако я не знаю, как разместить там элементы управления, особенно расположенные, как в Photoshop.
Я создал подкласс QTreeWidget: обратите внимание, что мне нужно поддерживать перетаскивание для группировки и пользовательскую высоту слоев. Флажок должен располагаться по краю справа, а размер значка должен быть 32x32 пикселя:
ViewLayerList::ViewLayerList (сцена CustomGraphicsScene*, родительский элемент QWidget*) : QTreeWidget{родительский}, Scene_durchgereicht(сцена) { это->setHeaderHidden(ложь); это->setRootIsDecorated(истина); this->setStyleSheet("QTreeWidget::item { height: 50px; }"); это->setIndentation(0); это->setColumnCount(1); это->setFocusPolicy(Qt::NoFocus); QTreeWidgetItem* item = новый QTreeWidgetItem(); item->setText(0, «Привет»); это->addTopLevelItem(пункт); QWidget* виджет = новый QWidget; QHBoxLayout* макет = новый QHBoxLayout(виджет); QTreeWidgetItem*treeItem = новый QTreeWidgetItem(); QLineEdit* lineEdit = новый QLineEdit; lineEdit->setPlaceholderText(""); lineEdit->setReadOnly(истина); QCheckBox* checkBox = новый QCheckBox; lineEdit->setAlignment(Qt::AlignVCenter); макет->addSpacing(10); макет->addWidget(lineEdit); макет->addStretch(1); макет->addWidget(checkBox); макет->setContentsMargins(0, 0, 10, 0); макет->setSpacing(20); виджет->setLayout(макет); TreeItem->setSizeHint(0, виджет->sizeHint()); TreeItem->setText(0, ""); TreeItem->setIcon(0, QIcon(":/resource/quick.png")); TreeItem->setSizeHint(0, QSize(treeItem->sizeHint(0).width(), 35)); это->addTopLevelItem(treeItem); this->setItemWidget(treeItem, 0, виджет); this->setDragDropMode(QAbstractItemView::InternalMove); this->setSelectionMode(QAbstractItemView::ExtendedSelection); это->setDragEnabled(истина); это->setAcceptDrops(истина); это->setDropIndicatorShown(истина); }
Я хочу создать систему слоев, подобную Photoshop, с использованием QTreeWidget, поскольку она допускает групповую структуру.
Вот что я хочу добавить:
Горизонтальный макет: [Значок, LineEdit, Флажок] Однако я не знаю, как разместить там элементы управления, особенно расположенные, как в Photoshop.
Я создал подкласс QTreeWidget: обратите внимание, что мне нужно поддерживать перетаскивание для группировки и пользовательскую высоту слоев. Флажок должен располагаться по краю справа, а размер значка должен быть 32x32 пикселя:
ViewLayerList::ViewLayerList (сцена CustomGraphicsScene*, родительский элемент QWidget*) : QTreeWidget{родительский}, Scene_durchgereicht(сцена) { это->setHeaderHidden(ложь); это->setRootIsDecorated(истина); this->setStyleSheet("QTreeWidget::item { height: 50px; }"); это->setIndentation(0); это->setColumnCount(1); это->setFocusPolicy(Qt::NoFocus); QTreeWidgetItem* item = новый QTreeWidgetItem(); item->setText(0, «Привет»); это->addTopLevelItem(пункт); QWidget* виджет = новый QWidget; QHBoxLayout* макет = новый QHBoxLayout(виджет); QTreeWidgetItem*treeItem = новый QTreeWidgetItem(); QLineEdit* lineEdit = новый QLineEdit; lineEdit->setPlaceholderText(""); lineEdit->setReadOnly(истина); QCheckBox* checkBox = новый QCheckBox; lineEdit->setAlignment(Qt::AlignVCenter); макет->addSpacing(10); макет->addWidget(lineEdit); макет->addStretch(1); макет->addWidget(checkBox); макет->setContentsMargins(0, 0, 10, 0); макет->setSpacing(20); виджет->setLayout(макет); TreeItem->setSizeHint(0, виджет->sizeHint()); TreeItem->setText(0, ""); TreeItem->setIcon(0, QIcon(":/resource/quick.png")); TreeItem->setSizeHint(0, QSize(treeItem->sizeHint(0).width(), 35)); это->addTopLevelItem(treeItem); this->setItemWidget(treeItem, 0, виджет); this->setDragDropMode(QAbstractItemView::InternalMove); this->setSelectionMode(QAbstractItemView::ExtendedSelection); это->setDragEnabled(истина); это->setAcceptDrops(истина); это->setDropIndicatorShown(истина); }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
PyQt6 QTreeWidget не импортирует цвета из файла пользовательского интерфейса
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-