Создать собственный виджет Qt или реализовать существующий виджет? - PullRequest
0 голосов
/ 03 января 2012

Итак, я пытаюсь понять, как спроектировать каркас.По сути, это просто две QScrollAreas, одна над другой, с заголовком (и кнопкой внутри заголовка) для каждого.

Внутри одного дизайна области прокрутки я хочу, чтобы элементы были похожи на список QListWidgetItems, однако они будут иметь маленькое изображение слева и описание справа

Вдругой дизайн области прокрутки, я бы хотел, чтобы прямоугольники были заполнены цветом или рисунком / изображением.Все они должны быть доступны для выбора и издавать сигнал щелчка.

Должен ли я использовать подход класса и создать новый класс, который будет действовать как пользовательский виджет?Реализовать QWidget и рассчитать, где все должно быть размещено, изменить цвета фона / непрозрачности на событиях мыши и т. Д.?Или есть другой подход, который я должен принять к этому?Из того, что я прочитал, создание пользовательских виджетов - абсолютная боль.

Ниже приведены схемы того, что я хочу разработать - есть ли уже что-нибудь, что могло бы сделать эту работу?Если нет, как я должен идти о разработке этих?Я думал об использовании пары QListWidgets или QTreeWidgets, но они не будут выполнять все, что я ищу.

Wireframes of custom

Ответы [ 2 ]

1 голос
/ 19 января 2012

Я выбрал вместо этого другой подход. Вместо списка или QScrollArea я просто возьму QGraphicsView и нарисую в нем свои собственные объекты. Мне нужно, чтобы он обрабатывал еще несколько взаимодействий (левые и правые щелчки, крошечные кнопки внутри него и т. Д.). Я могу реализовать его в QListView, когда пойму это лучше, но сейчас это будет работать.

0 голосов
/ 03 января 2012

Я думаю, вы можете создать свой собственный элемент управления на основе QWidget.Для заголовка просто перетащите метку и кнопку, для остальных вы можете использовать QListWidget или QListView с пользовательскими ячейками

...