c++ - 使用相同的方法将一个变量用于不同的类

标签 c++ qt

我在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/

相关文章:

c++ - Mac OS X 上的 Qt : How to get rid of QListView's blue outline?

c++ - 在 Qt 中,在使用 hide() 或 setVisible(false) 时,如何阻止子网格布局尝试将所有内容居中?

c++ - 检查对话框/小部件/窗口是否仍然打开以防止重复

c++ - 将 std::wstring 转换为 QString 的最佳方法

C++ 在接收整数时读取 cin>> 中的空间

C++/Qt QTime - 如何使用对象

python-3.x - PyQt5 - 如何在鼠标点击位置画一个点?

c++ - 循环遍历类模板中的元组,插入 vector 元素

c++ - 将字符串转换为 char 指针可以指向的 char 数组/值的最有效方法是什么

c++ - 如何正确写入 "typename typename ..."type scspecifier?