我想在同一区域使用不同的自定义小部件(取决于具体情况)。为此,我创建了一个Interface类和一些派生自定义类小部件(因为它们具有相同的方法和清洁度)。
我的界面是:
IDial
派生类:
FirstDial,SecondDial
这些派生类继承自IDial,因此它们具有IDial的常用功能。
当我开始我的程序时,我想选择我将显示哪个表盘,它取决于宏或参数(它不重要)。
为了能够显示我想要的派生类(小部件),我没有其他选择,只能将接口类名称(IDial)作为" objectName"我的小部件区域的形式(设计模式)。
问题是Qt试图实例化这个接口......(由于纯虚函数,它是不可能和正常的。)
我想指出该区域可以包含不同的小部件,这些小部件都继承自此接口。
答案 0 :(得分:0)
将QFrame添加到您想要的位置,而不是类IDial。在您的标头文件中:
#include "firstdial.h"
#include <QHBoxLayout>
...
QHBoxLayout* layout;
FirstDial* firstDial;
在源文件中创建类的新布局和对象:
ui->frame->setFrameShape(QFrame::NoFrame); // a frame you've created
layout = new QHBoxLayout(ui->frame);
firstDial = new FirstDial;
将小部件添加到布局:
layout->addWidget(firstDial);