treewidget怎么与stackedWidget交互???
怎么重写函数使点击treewidget上不同的项在右侧stackedwidget中弹出不同的界面出来???我只会listWidget与stackedWidget交互!!! treeWidget stackedwi --------------------编程问答-------------------- 信号:
void QTreeWidget::itemChanged ( QTreeWidgetItem * item, int column ) --------------------编程问答-------------------- connect( treeWidget, SIGNAL( itemClicked( QTreeWidgetItem *, int ) ), stackedwidget, SLOT( slotCurrentWidget( QTreeWidgetItem *, int ) ) );
自定义一个槽函数
void slotCurrentWidget( QTreeWidgetItem *item, int column )
{
//判断是那个item
....
stackedwidget->setCurrentIndex( n );
} --------------------编程问答-------------------- 问题是我也不知道怎么判断当前选中的是哪个Item???关键就是如何区别当前选中的item
--------------------编程问答-------------------- 如何判断当前选中的item??? --------------------编程问答-------------------- 这很容易,有两种方法
1、继承QTreeWidgetItem,在里面设一个公有的成员属性,添加item的时候,就给这个item的公有属性赋予一个值,代表是什么类型的item
class CSecurityListWidgetItem : public QListWidgetItem
{
public:
CSecurityListWidgetItem();
~CSecurityListWidgetItem();
public:
boost::uuids::uuid m_resourceId;
EResourceType m_type;
};
我以前是这样写的
2、给QTreeWidgetItem设置一个值,调用setData ( int column, int role, const QVariant & value )这个函数,通过 data ( int column, int role ) 取出这个值已确定是什么item --------------------编程问答-------------------- 在做treewidget和stackedwidget关联,但是为什么没有进入槽函数??
部分程序如下所示:
dev = new QTreeWidgetItem(tree, QStringList(QString(tr("设备"))));
QTreeWidgetItem *en1 = new QTreeWidgetItem(dev, QStringList(QString(tr("主器"))));
dev->addChild(en1);
en1->setData(0, Qt::UserRole + 1,QVariant(0));
QTreeWidgetItem *en2 = new QTreeWidgetItem(dev, QStringList(QString(tr("备器"))));
dev->addChild(en2);
en2->setData(0, Qt::UserRole + 1,QVariant(1));
//这里有什么不对吗
connect(tree,SIGNAL(QTreeWidget::itemClicked(QTreeWidgetItem *item, int column)),this,SLOT(setStackedWin(QTreeWidgetItem *item, int column)));
槽:
void Star::setStackedWin(QTreeWidgetItem *item, int column)
{
stackedwindow->setCurrentIndex((item->data(column,Qt::UserRole + 1)).toInt());
//做测试用,但一直未变红,没有进入槽函数
en1->setBackground(column,QBrush(QColor(Qt::red)));
}
这样连接有什么不妥吗 还是槽函数有问题 多谢了 --------------------编程问答--------------------
我如上边那样编写程序,为什么不可以呢,没有进入槽函数 --------------------编程问答--------------------
在connect里的信号与槽函数的参数只写类型,不要写变量名。 --------------------编程问答-------------------- 槽和信号里的参数只写参数类型,不要参数名称
补充:移动开发 , Qt