读书人

简单有关问题的常规办法

发布时间: 2013-08-01 15:23:18 作者: rapoo

求一个简单问题的常规办法。
点击一个按钮弹出一个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:
模态对话框,但是这样你那个窗口不关,就不能做其他操作

读书人网 >QT开发

热点推荐