首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

简单有关问题的常规办法

2013-08-01 
求一个简单问题的常规办法。点击一个按钮弹出一个QWidget,在按钮的槽函数中大概是这样的, QWidget *a new

求一个简单问题的常规办法。
点击一个按钮弹出一个QWidget,在按钮的槽函数中大概是这样的, QWidget *a = new widget; a->show(),这样会有一个问题,每点击一次按钮,都会弹出一个新的Qwidget,如果我点击三次,都会出现三个对话框,在不把qwidget定为模态的情况下,请问一下,这种问题的常规解决办法是什么?

设置一个bool变量isexist,开始为false,第一个qwidget出来后将其赋值为true,在槽函数中加一个判断条件
if(!isexist)?
[解决办法]
在程序运行的一开始就 new 了 这个Qwidget
那个按钮里,只负责show
[解决办法]

引用:
在程序运行的一开始就 new 了 这个Qwidget
那个按钮里,只负责show

还可以这样:
把这个对话框声明为类变量,构造函数里 {对话框变量 = 0;}
show函数{
   if(!对话框变量){
      对话框变量 = new 对话框;
   }
   对话框变量->show();
}
析构函数里delete。
[解决办法]
如果你的QWidget *a = new widget;每次都一样的话,那你在QWidget前面加个static不就可以了,每次进来都是这个,只要判断判断指针是否存在啊,一个简单的单例模式
[解决办法]
方法1:
class A{
A();
QWidget *a;
};

A::A()
{
a = new QWidget;
}

A::onClicekd()
{
a->show();
}

方法2:
单例模式

方法3:
模态对话框,但是这样你那个窗口不关,就不能做其他操作

热点排行