Как добавить QListView / QListWidget в QGraphicsScene в Qt?

#qt

#qt

Вопрос:

Как добавить QListView / QListWidget в QGraphicsScene и добавить виджеты в ListView Когда я пытаюсь добавить QLisView в QGraphicsScene, прокрутка мыши влияет на уход со сцены. Я хочу добавить QPushButtons в качестве элементов ListView в QGraphicsScene с эффектом прокрутки мыши. Спасибо.

Комментарии:

1. Как вы пытаетесь добавить QListView к QGraphicsScene ? Можете ли вы опубликовать какой-нибудь код?

2. @ayoy : Это мой вопрос, как добавить QLsiview в QGraphicsScene. Я до сих пор не имею ни малейшего представления, с чего начать.

Ответ №1:

Как насчет QGraphicsProxyWidget ?

 QListView *listView = new QListView;
QGraphicsProxyWidget *proxy = scene.addWidget(listView);
  

Затем (или до этого) вы можете заполнить список чем угодно. QPushButton может быть добавлен в список с помощью setIndexWidget() . Также вы могли бы переосмыслить всю идею наличия QListView и попробовать QScrollArea линейный макет, содержащий кнопки. Для организации элементов в области прокрутки потребуется немного больше логики, но она должна быть более легкой, чем QListView с пользовательскими виджетами.

Ответ №2:

Я поддерживаю ответ выше: ProxyWidget — это ответ.

Вот мой рабочий код, заголовок:

 class CenterScreen{
private:
    QListWidget* nameListWidget;
    QGraphicsProxyWidget* nameProxyWidget;
...
  

Исходный код C :

 void CenterScreen::addListView()
{
    QGraphicsScene* scene = ui.centerGraphicsView->scene();
    nameListWidget = new QListWidget();
    nameProxyWidget = scene->addWidget(nameListWidget);
...
    nameProxyWidget->hide();    // you can control your widget as you like