2011-10-17 171 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