写出c++ Qt代码审查常见问题多个事例
时间: 2024-09-29 13:15:41 浏览: 68
在C++中使用Qt进行代码审查时,常见的问题包括以下几个方面:
1. **命名约定**:
- 模块名、类名、函数名未遵守Qt命名规范,如大小写混合、首字母大写的规则。
```
// 错误:BadNaming
class MyWidget : public QWidget {
public:
void badFunctionName() { ... }
};
```
正确:`MyWidget`, `myFunction`
2. **资源管理**:
- 对于QObjects,忘记释放或不正确的信号连接可能导致内存泄漏。
```cpp
// 错误:忘记删除槽函数关联
QPushButton *button = new QPushButton("Click me");
connect(button, &QPushButton::clicked, [](){ /* no delete */ });
```
正确:添加`deleteLater()`或使用智能指针。
3. **异常处理**:
- 忽略try-catch或没有正确处理可能出现的异常。
```cpp
// 错误:未处理文件操作异常
QFile file("non_existent_file.txt");
if (file.open(QIODevice::ReadOnly)) {
// ...
} else {
qCritical("Error opening file!"); // 缺少具体的错误处理
}
```
4. **Qt最佳实践**:
- 使用Qt提供的现成组件而非自定义控件,除非有特殊需求。
- 避免过度使用复杂的信号/槽系统,尽量保持代码清晰简洁。
5. **性能优化**:
- 使用QTimer代替直接的事件循环轮询,避免阻塞主线程。
```cpp
// 错误:阻塞主线程
while (!myCondition) QApplication::processEvents();
```
正确:`QTimer::singleShot`。
阅读全文