QT代码的组织
Organization of the QT Code
我正在编写一个中等大小的应用程序。我将有许多 gui 组件和许多类。但是,我很难组织代码,分离逻辑,...例如,假设我按下一个按钮来创建类的对象并对该对象执行计算。退出按钮的插槽功能后,此本地对象将被销毁。如果我以后在另一个函数中需要它怎么办?将所有内容定义为头文件中的全局变量对我来说不是一件好事。所以我在考虑一个静态类,它以某种方式包含指向我稍后需要的所有对象的指针。有人有更好的主意吗?
如何管理应用程序内的对象总是一个棘手的问题问题。Qt走上了一条非常面向对象的路线,并使用引用通过指针实现的语义几乎适用于所有内容。自防止繁琐的手动内存管理 Qt将所有内容组织成对象树。这由Qt自己的增强添加的对象模型一些动态功能。
如果你想走这条路,坚持Qt提供的一切。它比通常的C++方法更类似于Java,并且可能是对初学者来说更舒适,也许适合您的应用域。它将您的代码与Qt紧密绑定,并且很难与它分开。
另一种方法意味着简单地放弃所有Qt的东西并制定应用程序的核心逻辑。在纯C++中开发它,而不是有一个薄层,通过信号和插槽。在这种方法中,您将选择使用更多值语义。
对于创建并保留算法的具体示例周围。Qt方法:
class MyAlgo : public QObject {
Q_OBJECT
public:
MyAlgo(QObject* o) : QObject(o) { }
virtual compute();
};
// use it in a mainwindow slot
void MainWindow::executeAlgorithm(const QString& name) {
MyAlgo* algo = this->findChild<MyAlgo*>(name);
if(!algo) {
// not found, create
algo = new MyAlgo(this); // make mainwindow the parent of this algo
algo->setName(name); // QObject name property
}
algo->compute();
}
相关文章:
- Qt Quick-如何仅从c++代码与qml属性交互
- 我无法在 qt 的C++代码中定义字符串
- 需要将一行代码从C++ Qt翻译成PyQt
- 在Qt/C++中从一个代码构建两个略有不同的项目
- 将 Qt 代码从 createTextureFromId 更新为 createTextureFromNativeObje
- Qt:更新 QString 时自动生成的代码失败
- Qt GUI使用Qfiledialogbox和qlabel显示视频,这是我的代码
- 尝试在 QT 项目中调用 Java 代码时未找到类异常
- 运行Qt时处理退出代码0xC0000135 hello world
- 使用Qt Creator在调试模式下编译一段代码
- qt C++命令行代码中的分段错误(核心转储)
- 无法在这个基本的Qt代码片段中找到错误,但我被告知它肯定存在?
- 将Qt Designer项目转换为C++代码
- 如何从Qt QWebEngineView获取HTTP状态代码
- Qt创建者-如何删除Clang代码模型
- 使用其他编译器编译QT代码
- macOS+Qt+Intellisense上的Visual Studio代码
- 如何以及在何处使用带QT的Basler Cam实现opencv人脸检测代码
- 如果代码中没有连接任何插槽,是否有理由发出Qt信号?
- QT:AES-256-CBC 根据 PHP 代码在C++中加密/解密