当前位置: 代码迷 >> QT开发 >> Qt自定义弹出对话框,并获取返回值解决方案
  详细解决方案

Qt自定义弹出对话框,并获取返回值解决方案

热度:30   发布时间:2016-04-25 03:26:56.0
Qt自定义弹出对话框,并获取返回值
本帖最后由 cliffordl 于 2014-01-20 22:15:54 编辑
想自定义一个弹出框,如何获取弹出框的数据?  请各位指教

如果能提供创建 非模态的弹出框,就更感激不尽了。
------解决方案--------------------
第一种:
TYPE ty = new TYPE;
ty->show();/ty->exec();
int t = ty->getValue();
delete ty;

第二种:
int t;
TYPE ty(&t)
ty.show();/ty.exec()

第一种用指针,加个获取值的函数,第二个用引用或者指针把需要改变的变量值的变量传到对话框、、在里面修改值、、
show()是不阻塞的、、
exec()是阻塞的、、
------解决方案--------------------
这类交互多输入,应该都要用模态 阻塞等待输

直到你 确认 或 取消。 

代码模式有两种

引用:
第一种:
TYPE ty = new TYPE;
ty->show();/ty->exec();  <<<--这里必须阻塞
int t = ty->getValue();
delete ty;


第二种:

TYPE ty = new TYPE;
int ivalue = ty.WaitInput(int iDefValue);


WaitInput是自已实现的


无论第一,二种,若不从QDialog继承,就得自已实现阻塞


  try
    {
        evt = new QEventLoop;
        evt->exec();
        delete evt;
    }catch(...)
    {
    }

    evt = NULL;



------解决方案--------------------
发射一个信号,然后调用你获取值的槽函数,
------解决方案--------------------
引用:
Quote: 引用:

第一种:
TYPE ty = new TYPE;
ty->show();/ty->exec();
int t = ty->getValue();
delete ty;

第二种:
int t;
TYPE ty(&t)
ty.show();/ty.exec()

第一种用指针,加个获取值的函数,第二个用引用或者指针把需要改变的变量值的变量传到对话框、、在里面修改值、、
show()是不阻塞的、、
exec()是阻塞的、、



点击确定按钮时,是发射一个信号还是直接返回要获取的值呢?  再请教一下实现的方法。谢谢了!


类是没返回值的、、、
你可以用信号,在确定里发送信号,在用槽接受发送过来的值、、
  相关解决方案