• 5370阅读
  • 7回复

[讨论]do_file_SaveOrNot 中如何写取消按钮的事件(大家帮帮我)) [复制链接]

上一主题 下一主题
离线李亚臣
 
只看楼主 倒序阅读 楼主  发表于: 2011-11-20

一个问题
条件:创建新文件的时候,并且没有保存文件
想要实现的功能QMessageBox 有三个按钮,分别是Yes,No,Cancel
要求当选择 Cancel的时候,文本不被Clear。


代码:
QMessageBox box;       box.setWindowTitle(tr("警告"));//标题显示警告
        box.setText(curfile + tr("尚未保存,是否保存"));
        box.setIcon(QMessageBox::Warning);//图标设为警告图标
        box.setStandardButtons(QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel);
        int ret=box.exec();
        if(ret==QMessageBox::Yes)
            do_file_save();
         if(ret==QMessageBox::No)
        {
        ui->textEdit->clear();
         isSaved =true;
        }
         if(ret==QMessageBox::Cancel)
        {}
代码如上所述,但是 只要点击取消按钮,文本还是会清零,到底是哪里出现错误了,请大家指教,谢谢
我的c+++,我的梦
离线李亚臣
只看该作者 1楼 发表于: 2011-11-20
我的c+++,我的梦
离线jdwx

只看该作者 2楼 发表于: 2011-11-20
回 1楼(李亚臣) 的帖子
关键是在哪里清除的文本?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 3楼 发表于: 2011-11-20
先debug输出一下ret究竟返回的是什么值,先确认一下
另外三个if为什么不用else进行分支呢,虽然这个地方好像也没啥问题
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线李亚臣
只看该作者 4楼 发表于: 2011-11-20
回 2楼(jdwx) 的帖子
开始是这样的,我先打几个字,然后点击新建,弹出对话框,三个按钮分别是Yes,No,Cancel,明白了把
我的c+++,我的梦
离线李亚臣
只看该作者 5楼 发表于: 2011-11-20
回 3楼(roywillow) 的帖子
怎么用debug 看输出,请详细点
我的c+++,我的梦
离线xinqingfly

只看该作者 6楼 发表于: 2011-11-20
你的这段代码是放在新建函数中进行判断的吧,那么你在 if(ret==QMessageBox::Cancel)
        {}里应该加入return;吧 不然就继续执行新建的功能了
菜鸟也是鸟
离线roywillow

只看该作者 7楼 发表于: 2011-11-20
回 5楼(李亚臣) 的帖子
qDebug() << ret;
这么一句就可以看到了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个