我的头文件中有以下定义:
QAction actionPlay;
在我的cpp文件中,我有一个功能:
myFunc()
{
actionPlay = new QAction();
}
我只想在第一次输入函数myFunc()时在UI中进行更改。
我考虑过要检查actionPlay是否已初始化(如果我们已经调用了actionPlay = new QAction();
行)
我该怎么做?
谢谢
答案 0 :(得分:1)
该行:
actionPlay = new QAction()
正在尝试将指针分配给
中声明的非指针变量QAction actionPlay
所以不会按原样工作。
如果您将代码更改为:
QAction * actionPlay = 0;
它可以工作,然后您可以检查它是否已初始化:
if(!actionPlay) actionPlay = new QAction();
答案 1 :(得分:0)
如果要对每个对象执行操作:
QACtion *actionPay = nullptr; // *.h file
if(!actionPay) { actionPay = new QAction(); ..... } // *.cpp file
否则不要使用指针
if(!actionPay.isEnabled()) { ... enable actionPay ...} // *.cpp file
如果要执行一项操作:
//in your function *.cpp file
static bool once = true;
if(once) {
once = false;
... some code executed in the first call ...
}