Unsolved QCoreApplication::aboutToQuit is not a signal
-
@KoneTaH , I do wonder what the release criteria is before products like Qt Creator are deemed fit for release....as this is quite obvious.
-
I'm experiencing this as well.
Could it be related to the updated version of clang included with Xcode 12? In addition to updating Qt Creator recently, I also updated Xcode on my machine (macOS 10.15).
Looks like Qt Creator distributes its own version of clang. I'm assuming this is what the mac kits are supposed to use by default?
-
@evan_y said in QCoreApplication::aboutToQuit is not a signal:
Looks like Qt Creator distributes its own version of clang. I'm assuming this is what the mac kits are supposed to use by default?
No, that clang version is for the tooling provided by Qt Creator. Qt is not built with it, only the official Apple released Xcode clang is supported.
-
@SGaist Good. That is how my environment is set up and how it's supposed to be.
I'm still seeing the behavior reported by the OP.
-
I've also observed other odd clazy messages:
QString strKey = QString("%1%2").arg(clsJSON::mscszAck).arg(clsJSON::mscszCmdHB);
Results in:
Use multi-arg instead [clazy-qstring-arg]
This is clearly rubbish, because the other arguments in .arg are for formatting the same argument and what I have done works perfectly. I've submitted another bug for this tonight.
-
@SPlatten What are the types of those clsJSON::mscszAck and clsJSON::mscszCmdHB? If they are both strings, this clazy warning is probably correct because there are overloads with multiple string arguments:
https://doc.qt.io/qt-5/qstring.html#arg-14
Your code should work perfectly as well, but it may be suboptimal.
-
You should read the documentation of the suggested arg overload before opening a report.
-
@KoneTaH they are static const char*, the prefix:
m = member
s = static
c = const
sz = null terminated stringclsJSON is the name of the class they belong to. I tried using the multi-arg version, its just not right. As I said, regardless of the message the code works and does exactly what I intended.
-
@SGaist I have and I'm using the multi-arg version elsewhere in my code.
-
@SPlatten
If you want to know why you are getting this warning, I suggest that https://www.kdab.com/uncovering-32-qt-best-practices-compile-time-clazy/, 29. qstring-arg, is giving you the answer:Detects chained
QString::arg()
calls which should be replaced by the multi-arg overload to save memory allocations.QString("%1 %2").arg(a).arg(b); // Bad QString("%1 %2").arg(a, b); // one less temporary heap allocation
As @KoneTaH noted
Your code should work perfectly as well, but it may be suboptimal.
-
@JonB , the problem with:
QString("%1 %2").arg(a, b);
Is that the arguments for arg depend on the types being passed, there are 22 overloaded versions, here's the first:
( -
@SPlatten said in QCoreApplication::aboutToQuit is not a signal:
Is that the arguments for arg depend on the types being passed, there are 22 overloaded versions, here's the first:
This is wrong. What others are talking about is: https://doc.qt.io/qt-5/qstring.html#arg-22
Which is a template with arbitrary number of parameters and types. The only requirements is:
"Args can consist of anything that implicitly converts to QString, QStringView or QLatin1String.". -
SPlatten,
I am getting these same errors now as well. Did you ever find a solution?
Thanks.
-
@Zetrick , No, it still does it, I've reported the bugs.
-
SPlatten,
I'm writing this code:connect(set_Btn,&QPushButton::clicked,this,&Shudu::showQipan);
and the qt creator also brings a prob that says:
QAbstractButton::clicked is not a signal [clazy-connect-non-signal]
do u have and idea or it's the same problem you have?
-
@Justinxiang , its a rubbish message, there are lots of issues like this where signals that are signals are reported as not being signals...check the headers and documentation you will see that your code is ok.
-
I disabled the check, because it drove me nuts :D
seems to be a MacOS problem only, doesn't happen in the same project on my Windows VM