当前位置: 代码迷 >> QT开发 >> slot中传参数出了有关问题
  详细解决方案

slot中传参数出了有关问题

热度:53   发布时间:2016-04-25 04:39:36.0
slot中传参数出了问题
C/C++ code
        QTreeWidgetItem *item = new QTreeWidgetItem(0);     item->setText(0,name);    friendView->addTopLevelItem(item);     messageView->append(item->text(0));    connect(friendView, SIGNAL(itemClicked(QTreeWidgetItem*, int)),        this, SLOT(openNewDialog(QString))); // 这里我想把item->text(0)作为openNewDialog()的参数传过去


C/C++ code
void MyMainWindow::openNewDialog(QString name ){    //messageView->append("sign");    MyDialog *md = new MyDialog(name);      md->show();     md->raise();     md->activateWindow();}

然后运行程序后,点击item 没有反应,???

------解决方案--------------------
LZ错了 信号槽的信号函数和槽函数的形参类型必须一致才能进行参数传递
connect(friendView, SIGNAL(itemClicked(QTreeWidgetItem*, int)),
this, SLOT(openNewDialog(QString)));

openNewDialog(QString)得才成openNewDialog(QTreeWidgetItem*, int),保持两个函数形参一致
探讨
C/C++ code

QTreeWidgetItem *item = new QTreeWidgetItem(0);
item->setText(0,name);
friendView->addTopLevelItem(item);
messageView->append(item->text(0));
connect(friendView,……

------解决方案--------------------
你可以传过去(QTreeWidgetItem* ,int),然后再用 item->text(0),作为你想处理的字段读取!
  相关解决方案