日期:2014-05-16  浏览次数:20572 次

QT界面编程问题??
Qtextedit和Qtreewidget同步的问题?
        labels   < <   QObject::tr( "No ")   < <   QObject::tr( "Topic ");
        //labels   < <   QObject::tr( "No ");
       
        QTreeWidget   *treeWidget   =   new   QTreeWidget;
        QTextEdit   *textEdit   =   new   QTextEdit;
        textEdit-> setGeometry(12,36,55,99);

        treeWidget-> setHeaderLabels(labels);
        treeWidget-> show();
        textEdit-> show();

        connect(treeWidget,   SIGNAL(itemSelectionChanged()),
                textEdit,   SLOT(insertPlainText   (   const   QString   &   text   )));

目前我的代码写到这一步,我的目的是在treewidget中通过鼠标单击选择不同的item时,同时在textedit中显示出treewidget的第二栏即Topci的文本内容

请问接下来我该怎么做?如何编写insertPlainText   (   const   QString   &   text   函数???

谢谢!

------解决方案--------------------
把选择项的内容提取出来, 存为一个QString, 然后把textedit的内容设为该QString变量.
------解决方案--------------------
连不上就是连错了.
查查qt assistant
------解决方案--------------------
1.connect 里的信号和槽是不能带具体的变量作为参数的,你可以这样写insertPlainText ( const QString & ) ,但是这样写insertPlainText ( const QString & text )就不行的。

2.insertPlainText ( const QString & ) 是引用一个const QString类型的常量作为参数的,你可以这样写这个槽函数
void XXX :: insertPlainText ( const QString & str )
{
QString str1 = str;

}
同样,你的信号函数也需要引用一个const QString类型的常量作为参数的,这样才能传递过来。

可以参考下文档里的 client/server的例子,里面就是通过这种方式传递的。