2011-10-17 168 views
0

如何将QListView/QListWidget添加到QGraphicsScene并将小部件添加到ListView中 当我尝试添加QLisView到QGraphicsScene鼠标滚动影响从场景中去除。 我想添加QPushButtons作为QgraphicsScene中的ListView项目与鼠标滚动的影响。 谢谢。如何在Qt中添加QListView/QListWidget到QGraphicsScene?

+0

你如何尝试添加`QListView`到`QGraphicsScene`?你可以发布一些代码吗? – ayoy 2011-10-17 14:21:53

回答

1

QGraphicsProxyWidget怎么样?

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

然后(或之前),你可以用你想要的任何东西填充列表。可以使用setIndexWidget()QPushButton添加到列表中。您也可以重新考虑拥有QListView的整个想法,并试用QScrollArea和包含按钮的线性布局。这将需要更多的逻辑来组织滚动区域内的项目,但它应该更加轻巧,即具有自定义小部件的QListView

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