Baiyi27 wrote:
I found a problem. In my project, I used `vcpkg` to manage the qt5 library.
```c++
#include "qapplication.h"
#include "qpushbutton.h"
#include "qstring.h"
#include "fmt/format.h"
class MainWindow: public QWidget {
public:
MainWindow(QWidget *parent= nullptr)
: QWidget(parent)
{
auto testMsg= fmt::format("This is {1} test: {0},{1}\n", "Hello",
"Qt5");
pButton_= new QPushButton(QString::fromStdString(testMsg), this);
resize(1000, 800);
}
protected:
void resizeEvent(QResizeEvent *event) override
{
int buttonWidth = width() / 4;
int buttonHeight= height() / 4;
pButton_->setGeometry((width() - buttonWidth) / 2,
(height() - buttonHeight) / 2,
buttonWidth,
buttonHeight);
QWidget::resizeEvent(event);
}
private:
QPushButton *pButton_ { nullptr };
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.show();
return app.exec();
}
```
This is my `compile_commands.json` file configuration content:
```json
[{
"directory": "D:/CXXProject/PlantSmash/build",
"command": "D:\\Tools\\MSYS2\\mingw64\\bin\\c++.exe -DFMT_SHARED
-DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -isystem
D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5 -isystem
D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5/QtCore -isystem
D:/Tools/Vcpkg/installed/x64-mingw-dynamic/tools/qt5/mkspecs/win32-g++ -isystem
D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5/QtWidgets -isystem
D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include/qt5/QtGui -isystem
D:/Tools/Vcpkg/installed/x64-mingw-dynamic/include -g
-fdiagnostics-color=always -o
tests\\Framework\\CMakeFiles\\Framework.dir\\Qt5Test.cc.obj -c
D:\\CXXProject\\tests\\Framework\\Qt5Test.cc",
"file": "D:\\CXXProject\\tests\\Framework\\Qt5Test.cc",
"output": "tests\\Framework\\CMakeFiles\\Framework.dir\\Qt5Test.cc.obj"
}]
```
Use the command (clang-tidy-19) :
`clang-tidy -p .\build\ .\tests\Framework\Qt5Test.cc --header-filter='.*'
--exclude-header-filter='.*\-q.*\.h'` This should correctly ignore the `q*.h`
header files, and the output will not include diagnostic information about qt
header files
Here is the output:
```diff
D:\CXXProject\tests\Framework\Qt5Test.cc:17:26: warning: no header providing
"QWidget" is directly included [misc-include-cleaner]
16 |
17 | class MainWindow: public QWidget {
| ^
D:\CXXProject\tests\Framework\Qt5Test.cc:19:5: warning: single-argument
constructors must be marked explicit to avoid unintentional implicit
conversions [google-explicit-constructor]
19 | MainWindow(QWidget *parent= nullptr)
| ^
| explicit
D:\CXXProject\tests\Framework\Qt5Test.cc:19:25: warning: invalid case style for
pointer parameter 'parent' [readability-identifier-naming]
19 | MainWindow(QWidget *parent= nullptr)
| ^~
| pArent
20 | : QWidget(parent)
| ~~
| pArent
D:\CXXProject\tests\Framework\Qt5Test.cc:24:16: warning: 1000 is a magic
number; consider replacing it with a named constant [readability-magic-numbers]
24 | resize(1000, 800);
|^
D:\CXXProject\tests\Framework\Qt5Test.cc:24:22: warning: 800 is a magic number;
consider replacing it with a named constant [readability-magic-numbers]
24 | resize(1000, 800);
| ^
D:\CXXProject\tests\Framework\Qt5Test.cc:28:22: warning: no header providing
"QResizeEvent" is directly included [misc-include-cleaner]
28 | void resizeEvent(QResizeEvent *event) override
| ^
D:\CXXProject\tests\Framework\Qt5Test.cc:28:36: warning: invalid case style for
pointer parameter 'event' [readability-identifier-naming]
28 | void resizeEvent(QResizeEvent *event) override
|^
|pEvent
29 | {
30 | int buttonWidth = width() / 4;
31 | int buttonHeight= height() / 4;
32 |
33 | pButton_->setGeometry((width() - buttonWidth) / 2,
34 | (height() - buttonHeight) / 2,
35 | buttonWidth,
36 | buttonHeight);
37 |
38 | QWidget::resizeEvent(event);
| ~
| pEvent
D:\CXXProject\tests\Framework\Qt5Test.cc:42:18: warning: invalid case style for
private member 'pButton_' [readability-identifier-naming]
33 | pButton_->setGeometry((width() - buttonWidth) / 2,
|
| PButton_
34 | (height() - buttonHeight) / 2,