Qt从QWidget类继承来自定义和使用它[重复]

Posted

技术标签:

【中文标题】Qt从QWidget类继承来自定义和使用它[重复]【英文标题】:Qt inherit from QWidget class to customize and use it [duplicate] 【发布时间】:2019-10-27 10:34:38 【问题描述】:

我想从“QDoubleSpinBox”继承并添加一些功能并添加到 MainWindow。 这样的代码编译得很好,但我不知道如何通过代码 MainWindow 沿着设计器中的其他元素添加/放置它。

.h 文件:

class DoubleSpinner : public QDoubleSpinBox
     
        Q_OBJECT
    public:
        DoubleSpinner (QDoubleSpinBox *parent  = nullptr);



        ~DoubleSpinner()

        //Message();


    private:

    ;

.cpp 文件:

DoubleSpinner::DoubleSpinner (QDoubleSpinBox *parent) : QDoubleSpinBox(parent)



主窗口.cpp

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

       ui->setupUi(this);

       ui->lineEdit->setText("0.0001");

       //DoubleSpinner ds = new DoubleSpinner;



MainWindow::~MainWindow()

    delete ui;

【问题讨论】:

【参考方案1】:

如果想在 Qt Designer 中使用自定义小部件,您需要阅读 Qt 文档中的此主题:

Creating Custom Widgets for Qt Designer

您还可以在 Qt Designer 中创建布局,然后实例化您的小部件并将其重新设置为这些布局。 我建议您在不使用设计器的情况下开始学习 Qt,以熟悉 Qt 的底层。您可以在以后随时使用 Qt 设计器。

【讨论】:

为 Designer 创建自定义插件在 99% 的情况下是绝对错误的做法。对于基本上零收益来说,这是一项巨大的工作...... 我同意@hyde。只有当你在一个拥有不同设计师的团队中工作并且你有足够的时间和资源来走这条路时,它才有意义。在我使用 Qt 的 10 多年中,我个人从未使用过 Qt Designer。

以上是关于Qt从QWidget类继承来自定义和使用它[重复]的主要内容,如果未能解决你的问题,请参考以下文章

来自两个抽象类的多重继承 (Qt)

C ++ QT如何从QMainWindow布局访问QWidget的公共类成员

Qt中如何添加UI

QT自定义窗口

变量的Qt/C++继承[重复]

QT学习_常用类及信号和槽