如何将QListView / QListWidget添加到QGraphicsScene并将小部件添加到ListView 当我尝试将QLisView添加到QGraphicsScene时,鼠标滚动影响来自场景。 我想在QgraphicsScene中添加QPushButtons作为ListView项目,带有鼠标滚动效果。 感谢。
答案 0 :(得分:1)
QGraphicsProxyWidget
怎么样?
QListView *listView = new QListView;
QGraphicsProxyWidget *proxy = scene.addWidget(listView);
然后(或之前)您可以使用您想要的任何内容填充列表。可以使用QPushButton
将setIndexWidget()
添加到列表中。您也可以重新考虑拥有QListView
的整个想法,并尝试使用QScrollArea
和包含按钮的线性布局。这需要更多的逻辑来组织滚动区域中的项目,但它应该更轻量级QListView
使用自定义小部件。
答案 1 :(得分:0)
我的第二个答案是: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