Qt Ui命名空间
Qt Ui namespace
Qt自动生成的命名空间Ui
的意义是什么?
这两个命名空间相同吗?
在第一个中,它包含ui_MainWindow.h
的类MainWindow的前向声明,为什么它不声明为class Ui::MainWindow
?编译器如何知道主窗口来自自动生成的Ui头?
namespace Ui {
class MainWindow; //MainWindow from ui_MainWindow.h
}
在ui_MainWindow.h namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
用于将自动生成的窗口分组到一个命名空间中。它有助于区分从设计器ui文件生成的ui类和实现功能的类。
Qt自动生成的命名空间Ui的意义是什么?
以便它驻留在自己的"气泡"中,并且不会与任何其他类似命名的类冲突,例如您显式创建的类。当然,他们可以使它被不同地调用等等,但即使这样,名称空间也是c++中处理以避免冲突的好实践。
这两个命名空间相同吗?
是的,当然,在同一个父命名空间中具有相同名称的命名空间在一个项目中总是相同的。
我想我的意思是为什么在Ui_MainWindow.h中创建了一个命名空间Ui。
好吧,它会在哪里被创建,真的吗?需要在某个文件中生成此代码,而不会因动态生成的代码而污染任何现有的源文件。是否碰巧被这样称呼,又只是个人品味罢了。
以及MainWindow.h中命名空间Ui中的MainWindow类如何知道它是Ui文件中MainWindow类的前向声明,而不是我创建的。
嗯,这与Qt无关,它只是c++基础。在我看来,您似乎不了解名称空间是什么以及如何使用它们。它将被命名空间"标记",因此编译器当然会知道它引用的是哪一个。现在想象一下没有名称空间的情况。这对编译器来说是完全不明确的。
相关文章:
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 在命名空间中定义函数还是限定函数
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- CUDA内核和数学函数的显式命名空间
- 嵌套的匿名命名空间
- CMakeLists.txt中的命名空间表示法
- 类是C++中的命名空间吗
- 在命名空间中使用全局命名空间中的函数
- 如何使 std::sort 在 std::swap 和我的命名空间的模板化交换之间没有名称冲突?
- '使用命名空间{嵌套在另一个命名空间中的某个命名空间}"
- 是否可以将函数导入命名空间,但不能导出它?
- C++ C++类中的命名空间降级
- 如何使用 soong 命名空间来有条件地编译模块
- Qt widget 项目中的 UI 命名空间
- 正在尝试访问命名空间Ui中的类
- Qt Ui命名空间
- 为什么我们在Qt中处理表单时要为ui对象声明一个命名空间?