主题 : Qt仿真问题(qvfb) 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 8756
精华: 0
发帖: 34
金钱: 340 两
威望: 170 点
综合积分: 68 分
注册时间: 2009-09-05
最后登录: 2010-10-11
楼主  发表于: 2009-09-09 23:18

 Qt仿真问题(qvfb)

管理提醒: 本帖被 kasim 从 Linux技术交流专区 移动到本区(2009-09-10)
QDialog::exec: calling this function for a modeless dialog make no sense

运行qvfb &
后再运行我编的程序时出现的
请问怎么回事
我的程序是一个看图片的程序
级别: 新手上路
UID: 8756
精华: 0
发帖: 34
金钱: 340 两
威望: 170 点
综合积分: 68 分
注册时间: 2009-09-05
最后登录: 2010-10-11
1楼  发表于: 2009-09-09 23:18

 回 楼主(rainylng) 的帖子

请大家帮帮忙呀!
创新改变世界,技术驱动中国
级别: 论坛版主
UID: 7752
精华: 2
发帖: 55
金钱: 570 两
威望: 276 点
综合积分: 150 分
注册时间: 2009-07-27
最后登录: 2010-03-30
2楼  发表于: 2009-09-10 08:46
楼主,你的程序是怎么写的,不知能看否,或者你再稍微介绍下
创新改变世界,技术驱动中国
级别: 论坛版主
UID: 7752
精华: 2
发帖: 55
金钱: 570 两
威望: 276 点
综合积分: 150 分
注册时间: 2009-07-27
最后登录: 2010-03-30
3楼  发表于: 2009-09-10 09:26
这个信息的意思是:对于非模态窗体,调用exec()函数没有意思。由于Qt2.x中的窗体的默认设置就是模态为FALSE,也即是非模态。所以对于非模态窗体通常调用的show()函数,对于模态窗体,一般地调用exec()比show()函数更好一些,这只是一个警告,你也可以不必太在意
创新改变世界,技术驱动中国
级别: 论坛版主
UID: 7752
精华: 2
发帖: 55
金钱: 570 两
威望: 276 点
综合积分: 150 分
注册时间: 2009-07-27
最后登录: 2010-03-30
4楼  发表于: 2009-09-10 09:31
如果你使用了exec()函数,那么在调用过程中会对模态进行测试,你可以看看exec()函数原型
int QDialog::exec()
{
#if defined(CHECK_STATE)
    if ( !testWFlags(WType_Modal) )
    qWarning( "QDialog::exec: Calling this function for a modeless dialog "
         "makes no sense" );
#endif
    setResult( 0 );
    show();

#ifdef _WS_QWS_ // QDialog::show is changed to 3.0 semantics for Qt/Embedded
    if ( testWFlags(WType_Modal) && !in_loop ) {
    in_loop = TRUE;
    qApp->enter_loop();
    }
#endif

    return result();
}
级别: 新手上路
UID: 8756
精华: 0
发帖: 34
金钱: 340 两
威望: 170 点
综合积分: 68 分
注册时间: 2009-09-05
最后登录: 2010-10-11
5楼  发表于: 2009-09-10 12:05
谢谢大家!
级别: 新手上路
UID: 8756
精华: 0
发帖: 34
金钱: 340 两
威望: 170 点
综合积分: 68 分
注册时间: 2009-09-05
最后登录: 2010-10-11
6楼  发表于: 2009-09-11 03:43
我写程序的时候主窗口继承的是QDialog
我把程序改成继承QWidget就好了
这两个有什么区别呀?