我正在使用 C++ 做一些算法工作。我的算法有一些选项,我需要能够以尽可能少的努力添加到我的程序中。我目前正在使用此代码。
一切都按预期工作:我在我的程序中添加了一些代码,这样我就可以使用类似-oopt1=val1,opt2=val2
的参数调用二进制文件,并且自动设置选项。
问题是我同时也在编写一个 GUI。现在必须能够使用 GUI 设置/请求每种选项。但是,我可能需要一个用于整数值的旋转框和一个用于布尔选项的复选框。我使用 Qt 作为工具包,所以我可以编写一个返回QWidget*
适当基类的成员函数。
但是,我不希望在我声明我的选项的标头中出现任何特定于 GUI 的代码,因为我想将 GUI 与程序的其余部分分开。我可以将任何 Option 子类化以创建适当的QWidget*
,但如果我得到 的列表OptBase*
,我将不知道我应该创建什么样的小部件。
有什么方法可以让 GUI 与程序的其余部分分开,同时仍然能够创建适当的小部件?