主题 : QTOPIA界面利用多线程自动更新的问题【急】 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 57889
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
综合积分: 38 分
注册时间: 2011-10-31
最后登录: 2011-12-06
楼主  发表于: 2011-12-05 00:56

 QTOPIA界面利用多线程自动更新的问题【急】

最近写了一个qtopia的小界面,但是遇到个问题,以下是出现问题的代码

void MainWindow::add3()                 //鼠标按下去的响应事件
{
    pthread_t threadId;
    if(pthread_create(&threadId,NULL, MainWindow::showTextStub, NULL) != 0)   //创建一个线程,执行的函数如下
    {
        perror("Create thread error!");
    }
}

void* MainWindow::showTextStub(void* dummy)           //pMainWindow是一个本窗体的一个指针,此函数主要为了满足创建线程的条件
{                                                                                                //此函数就只是用来执行下面这个函数
    pMainWindow->showText();
}
void MainWindow::showText()
{    
                     screen->setText(QString("thread"));             //在窗体控件上显示  thread 字符串
}

但是不知道为什么,按下按钮之后控件上不会显示thread字符串,但是如果 在界面上 其他地方 点一下,控件 就更新(!!!) 了。
qtopia编程新手,继续求助。
级别: 新手上路
UID: 57889
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
综合积分: 38 分
注册时间: 2011-10-31
最后登录: 2011-12-06
1楼  发表于: 2011-12-05 10:19
求高手指点啊, 已经被这个问题困扰好久了
级别: 侠客
UID: 27835
精华: 0
发帖: 117
金钱: 590 两
威望: 118 点
综合积分: 234 分
注册时间: 2010-09-01
最后登录: 2017-06-22
2楼  发表于: 2011-12-06 01:40
按钮按下应该按钮的响应已经触发,但是屏幕没有更新,可以update一下试试。
你也可以跟踪一下这个按钮按下的信号是否已经触发了槽。
级别: 新手上路
UID: 57889
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
综合积分: 38 分
注册时间: 2011-10-31
最后登录: 2011-12-06
3楼  发表于: 2011-12-06 02:44

 回 2楼(langqiong) 的帖子

请问如何更新??  我调用窗体,或者控件的repaint函数都不行。。只有用手点屏幕才能更新
级别: 新手上路
UID: 83716
精华: 0
发帖: 12
金钱: 65 两
威望: 13 点
综合积分: 24 分
注册时间: 2012-12-11
最后登录: 2014-03-19
4楼  发表于: 2013-04-19 21:41
那怎样编译呢