• 4069阅读
  • 6回复

按扭  禁用  出错 [复制链接]

上一主题 下一主题
离线rockyluo
 

只看楼主 倒序阅读 楼主  发表于: 2008-09-03
— 本帖被 XChinux 执行加亮操作(2008-09-03) —
Form1上一按钮 b1 ,点击后可出现一子界面,我想在弹出子界面的同时把 b1  给禁用(灰色显示),在子界面的代码中写了 
b1 ->setEnabled( false );
退出子界面时也写了
b1 ->setEnabled( true );
编译通过后,运行,点击 b1 为啥出现段错误???
去掉上面两行代码,运行正确。
也试过把上面两行代码中的 b1  改为  Form1上的其他 按钮,运行也正确。
敢问有谁晓得这是么元因?
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线guoyun_he

只看该作者 1楼 发表于: 2008-09-03
把代码贴出来看看!
离线suraid
只看该作者 2楼 发表于: 2008-09-03
段错误应该就是你弹出界面的时候访问了非法指针
也就是说可能当时的b1并不是你所要的
请楼主好好再检查一下代码
SuRaid团队主要承接嵌入式、Web、美工、算法设计等业务

团队网址: http://www.suraid.cn
团队博客: http://blog.suraid.cn
团队邮箱: bbs@esuraid.com
离线nmiirq

只看该作者 3楼 发表于: 2008-09-03
楼上说的对,段错误大多是非法指针带来的问题
离线rockyluo

只看该作者 4楼 发表于: 2008-09-04
代码中涉及b1的代码:
----------------------Form1构造函数中----------------------------------
    QPushButton *b1 = new QPushButton("Work",this);
        b1->setGeometry(200,35,70,35);

        connect(b1,SIGNAL(clicked()),this,SLOT(waitSlot()));                //waitSlot为那个子界面
---------------------------------------------------------------------------------

-----------------------waitSlot()----------------------------------------------
void Form1::waitSlot()
{
        ...........                        //界面指针  wait
        connect(back,SIGNAL(clicked()),this,SLOT( back( ) ));     
        wait->show();
        b1->setEnabled( false );                      //禁用b1
}
-----------------------------------------------------------------------------------

--------------------------------back()------------------------------------------
void Form1::back()
{
        delete wait;
        b1->setEnabled( true );              //恢复b1
}
代码中似乎没对b1非法调用
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线rockyluo

只看该作者 5楼 发表于: 2008-09-04
错误现象:
一点击b1就卡死,子界面压根儿没显示出来。。。。。。。。。。。。。
望指教!
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线rockyluo

只看该作者 6楼 发表于: 2008-09-04
啊  对对对  b1有误       
先在类声明里定义了  又在Form1结构体中重复定义
作用域不明
在此谢谢guoyun_he,更要谢谢suraid、 nmiirq ,是你们这么多年来.........
谢谢你们..............谢谢
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
快速回复
限100 字节
 
上一个 下一个