Qt C++ QTreeWidget Как добавить пользовательские элементы управления внутри 1 столбца?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Qt C++ QTreeWidget Как добавить пользовательские элементы управления внутри 1 столбца?

Сообщение Гость »


Здравствуйте и заранее спасибо за помощь.

Я хотел создать систему слоев, подобную Photoshop, с использованием QTreeWidget, поскольку он допускает групповую структуру.

Вот что я хочу добавить:

Горизонтальный макет: [значок, строка редактирования, флажок]

Короче: слой, похожий на фотошоп. Но я не знаю, как разместить там элементы управления, особенно расположенные, как в фотошопе.

Я создал подкласс 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(истина); } СПАСИБО, что помогли мне. Очень ценю это.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • QTreeWidget Как добавить пользовательские элементы управления внутри 1 столбца 9umn?
    Гость » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Гость
  • Расширение ширины столбца в qtreewidget динамически
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Слой Photoshop, такой как QTreeWidget Qt6 C++ – Нужна помощь
    Anonymous » » в форуме C++
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • PyQt6 QTreeWidget не импортирует цвета из файла пользовательского интерфейса
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Сортировать QTreeWidget в алфавитном порядке, кроме одного элемента.
    Anonymous » » в форуме Python
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»