• 7584阅读
  • 7回复

在一个线程中能设置QTextEdit的显示值吗? [复制链接]

上一主题 下一主题
离线stone123
 
只看楼主 正序阅读 楼主  发表于: 2009-07-28
我创建了一个线程,用它来一直接收串口的数据,接收完以后,我想还是在这个线程中将部分接收的内容显示到QTextEdit中,可是我用setText()无法实现,什么都不能显示,请大家帮忙看一下
离线beajisong

只看该作者 7楼 发表于: 2009-08-29
QMetaObject::invokeMethod(label, SLOT(setText(const QString &)),Q_ARG(QString, "Hello"));
这句其实差不多了
但是得给QueuedConnection
让在主线程激发
离线stone123
只看该作者 6楼 发表于: 2009-07-29
allblue:我在用串口接收gps信息,你说信号可以传递参数,除了QString类型外,还可以传递其他的吗,我也是将gps信息存储到结构体中,难道信号还可以传递结构体吗,如果这样的话,我得需要写一个槽来处理就好了。请allblue具体讲讲信号传递参数的问题,怎么QT文档中也没有详细介绍呢?刚接触QT,希望指点一下
离线stone123
只看该作者 5楼 发表于: 2009-07-29
谢谢dbzhang800 ,看了你的例子,按照你的思路,我已经解决并且编译通过,再次感谢!!!
离线allblue

只看该作者 4楼 发表于: 2009-07-29
信号可以传递参数的,然后再setText(),
我在做通讯的时候,一般是定义一个串口数据的结构体,在信号中传递,然后再进行处理,搂主不妨试试。
黑暗魔法
离线dbzhang800

只看该作者 3楼 发表于: 2009-07-28
线程中设置QTextEdit的值 threadandtextedit.zip (2 K) 下载次数:173

一个简单的例子
离线stone123
只看该作者 2楼 发表于: 2009-07-28
一楼的朋友能否写一下简单的例程,网上也说这么做,说在线程中是无法调用QWidget的函数的,可我在网上找了半天,也不知道怎么做,参考文档中说调用这个函数QMetaObject::invokeMethod(label, SLOT(setText(const QString &)),Q_ARG(QString, "Hello"));可在线程中修改label的显示文本,但我试了,还是不行。。。
离线dbzhang800

只看该作者 1楼 发表于: 2009-07-28
通过信号和槽,将数据发送到主线程
快速回复
限100 字节
 
上一个 下一个