首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

怎么设置tree widget与stacked widget关联,求解答,多谢

2012-11-08 
如何设置tree widget与stacked widget关联,求解答,谢谢。通过QT designer直接拖的控件,不是用代码添加的控

如何设置tree widget与stacked widget关联,求解答,谢谢。
通过QT designer直接拖的控件,不是用代码添加的控件。想实现点击tree widget对应item,显示stacked widget page页的功能。
通过网上搜索百思不得其解,求做过的大大们指点。要详细点的,给出一个类似的示例也行,谢谢啦。

[解决办法]
可以写少量的代码来实现哈。当然完全不写代码只靠拖控件这个实现不了。下面写个伪代码。看哈思路哈,不难的。
xxx.h
QMap<QObject*, int > m_map

//.cpp
//构造函数中
m_map[item1] = 1;
m_map[item2] = 2;
.......

connect(treewidget,SIGNAL(itemClicked(QTreeWidgetItem * item, int column ), this,SLOT(hanleItemClicked(QTreeWidgetItem * item)));

//实现你自己的槽
void MyWidget::hanleItemClicked(QTreeWidgetItem * item)
{
int pageIndex = m_map[item];
ui->stackedWidget->setCurrentWidget(pageIndex);

}
[解决办法]
只要在QtreeWidgetItem里增加一个数据int,用下面的函数
void QTreeWidgetItem::setData ( int column, int role, const QVariant & value ) [virtual]
item->setData(0, Qt::UserRole + 1,QVariant(某个int));

写一个槽和void QTreeWidget::itemClicked ( QTreeWidgetItem * item, int column ) [signal]链接
{
ui->stackedWidget->setCurrentWidget(item->data(0, Qt::UserRole + 1).toInt());
}

热点排行