我有一个Qt应用程序,其中对话使用标准XML UI文件,这些文件被编译到代码中。它们有一个标准结构,其中为此UI文件定义了类名,然后我可以通过一个对象访问成员(= GUI元素),该对象是这个UI类的实例(代码片段来自.ui文件,ui_ * .h文件和对话实现):
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DlgClass</class>
...
namespace Ui {
class DlgClass : public Ui_DlgClass {};
} // namespace Ui
Ui::DlgClass ui;
ui.heightCaption->setMinValueTextColor(Qt::black);
现在我的问题:对于一些对话我希望有两个或更多的布局,其中设计不同但包含完全相同的GUI元素(但在不同的位置)。接下来我需要以与之前完全相同的方式访问这些元素,意味着通过指针访问由UI文件定义的类型的对象。
我的问题:当我创建两个随后被编译的UI文件时,它们具有不同的类名,我无法轻易地相互映射。那么:如何解决这个问题呢?是否可以为两个不同的UI文件定义一个公共基类?或者还有什么可以在这里完成的?在运行时加载和解释UI文件不是解决方案,这太慢了。
谢谢!