gpt4 book ai didi

c++ - 在哪里为 QMainWindow : in header file or in constructor? 声明某些 Qt 对象

转载 作者:行者123 更新时间:2023-11-28 03:40:36 24 4
gpt4 key购买 nike

我意识到我的主窗口中有几个对象(QMenus、QLabels、QLayouts、中央小部件等)不需要在主窗口的头文件中声明。相反,可以在主窗口的构造函数中声明它们。

例如,之前:

在主窗口中

private:
QMenu *fileMenu;
// etc.

在主窗口.cpp中

MainWindow::MainWindow()
{
fileMenu = menuBar()->addMenu("File");
// etc.
}

对比

在主窗口.cpp中

MainWindow::MainWindow()
{
QMenu *fileMenu = menuBar()->addMenu("File");
// etc.
}

如果作用域不是问题(例如,除了在 mainwindow 的构造函数中创建它时,我不需要在任何地方访问 fileMenu),我在哪里声明它重要吗?是否有针对此类情况的“最佳做法”?

我是 Qt/C++ 的新手,我意识到这可能更像是一个 C++ 问题而不是 Qt 问题。

最佳答案

为您声明的每个变量使用尽可能小的范围是常见的规则。

所以,最好不要让它们成为类成员(不要在头文件中声明它们)。

关于c++ - 在哪里为 QMainWindow : in header file or in constructor? 声明某些 Qt 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9400117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com