Слой Photoshop, такой как QTreeWidget Qt6 C++ – Нужна помощьC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Слой Photoshop, такой как QTreeWidget Qt6 C++ – Нужна помощь

Сообщение Anonymous »


Я хотел создать слой в фотошопе, похожий на систему, но пока я все еще учусь, мне трудно. Сначала я попробовал использовать делегата, но, застряв, переключился на объявление элементов управления напрямую в элементе.

Чего я хочу: Один слой должен состоять из [Значок, LineEdit, Флажок]. Каждый слой должен иметь высоту 40 пикселей, должен подсвечиваться при наведении курсора и быть группируемым (возможность размещения в качестве дочернего виджета другого, как со слоями в фотошопе). Вот изображение того, как должны выглядеть такие слои: [Вот как это должно выглядеть (нажмите здесь...)][1]

Также вот ссылка на сообщение, которое я нашел о выделении строк QTableView. Это то, что я хочу для своего QTreeView, но я не могу перевести его в мои пользовательские элементы управления: https://evileg.com/en/post/624/

На данный момент я создал собственный подкласс QWidget, который установил для своего QTreeWidgetItem для достижения этого макета. Однако наведение не работает должным образом, и пользовательские элементы управления теряются при перетаскивании моего пользовательского виджета под другой QTreeWidgetItem (группировка).

Вот мой Cutomwidget.cpp:

#include "ViewLayerCustomItem.h" #include #include #include #include #include #include #include #include ViewLayerCustomItem::ViewLayerCustomItem(QWidget *parent) : QWidget(родительский) { // Erstellen Sie ein Layout для определенных виджетов. QHBoxLayout* макет = новый QHBoxLayout(); QLabel* iconLabel = новый QLabel(); iconLabel->setPixmap(QPixmap("://resource/quick.png").scaled(32, 32, Qt::KeepAspectRatio)); макет->addWidget(iconLabel); QLineEdit* lineEdit = новый QLineEdit(); макет->addWidget(lineEdit); lineEdit->setReadOnly(false); lineEdit->setFrame (ложь); lineEdit->setPlaceholderText(""); QCheckBox* checkBox = новый QCheckBox(""); макет->addWidget(checkBox); setLayout (макет); } void ViewLayerCustomItem::enterEvent(QEnterEvent *event) { QString hoverStyle = "цвет фона: #E6F7FF; цвет: #000000;"; setStyleSheet(hoverStyle); } void ViewLayerCustomItem::leaveEvent(QEvent *event) { setStyleSheet(""); } А вот mytreewidget.cpp:

#include "ViewLayerList.h" #include #include #include #include #include "SignalManager.h" #include #include #include "ViewLayerCustomItem.h" ViewLayerList::ViewLayerList(CustomGraphicsScene *scene, QWidget *parent) : QTreeWidget{родительский}, Scene_durchgereicht(сцена) { это->setHeaderHidden(истина); это->setRootIsDecorated(истина); это->setFocusPolicy(Qt::NoFocus); QTreeWidgetItem* item = новый QTreeWidgetItem(this); ViewLayerCustomItem *customWidget = новый ViewLayerCustomItem(); this->setItemWidget(item, 0, customWidget); это->addTopLevelItem(пункт); QTreeWidgetItem *item2 = новый QTreeWidgetItem(это); это->addTopLevelItem(item2); this->setDragDropMode(QAbstractItemView::InternalMove); this->setSelectionMode(QAbstractItemView::ExtendedSelection); это->setDragEnabled(истина); это->setAcceptDrops(истина); это->setDropIndicatorShown(истина); } Спасибо всем, кто дает конструктивные и полезные ответы.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Photoshop-python-api говорит, что, возможно, у меня неправильно установлен Photoshop
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как добавить редактируемый текстовый слой в файл Photoshop PSD с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как добавить редактируемый текстовый слой в файл Photoshop PSD с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как добавить редактируемый текстовый слой в файл Photoshop PSD с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как добавить редактируемый текстовый слой в файл Photoshop PSD с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

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