我在qt设计器中创建了两个窗口(win1win2),它们具有相同名称的对象。我只想根据输入数据(use_1)创建和操作一个。

我可以这样:

if ( use_1 )
    ui_win1->setupUi();
else
    ui_win2->setupUi();

// (...)
if ( use_1 )
    ui_win1->comboBox->clear();
else
    ui_win2->comboBox->clear();

对所有我要使用的常用方法等等。

有没有更聪明的方法可以做到这一点?

我正在阅读有关std::variantQVariant的信息,但这似乎不是我想要的。

最佳答案

为什么不只是

WhatewerBaseWindowType *activeWindow;

if ( use_1 )
    activeWindow = ui_win1;
else
    activeWindow =  ui_win2;

activeWindow->setupUi();
activeWindow->comboBox->clear();
// ...

我假设它们具有某种基类,因此为什么它们将具有所有通用方法

关于c++ - 使用相同的方法将一个变量用于不同的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62306362/

10-11 16:38