ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QStackedWidget动态多界面

2021-02-23 23:32:35  阅读:347  来源: 互联网

标签:界面 parent UiInterface ui QWidget 动态 uiradarperform QStackedWidget UiRadarPerform


1、新建子界面的虚基类

uiinterface.h

#ifndef UIINTERFACE_H
#define UIINTERFACE_H
#include <QWidget>
namespace UIINTERFACE_NAME_SPACE {
#define UI_WIDTH 1520
#define UI_HEIGHT 1118
}

class UiInterface : public QWidget
{
    Q_OBJECT
public:
    UiInterface(QWidget *parent = 0);
private:
    /*初始化*/
    virtual void _init(){}
};

#endif // UIINTERFACE_H

uiinterface.cpp

#include "uiinterface.h"
using namespace UIINTERFACE_NAME_SPACE;
UiInterface::UiInterface(QWidget *parent)
    :QWidget(parent)
{this->resize(UI_WIDTH, UI_HEIGHT);
}

2、新建子界面,类型是Qt设计师界面类,然后稍作修改【多个】

uiradarperform.h

#ifndef UIRADARPERFORM_H
#define UIRADARPERFORM_H

#include "uiinterface.h"

namespace Ui {
class UiRadarPerform;
}

class UiRadarPerform : public UiInterface
{
    Q_OBJECT

public:
    explicit UiRadarPerform(QWidget *parent = 0);
    ~UiRadarPerform();private:
    Ui::UiRadarPerform *ui;
    virtual void _init() override;
};

#endif // UIRADARPERFORM_H

 

uiradarperform.cpp

#include "uiradarperform.h"
#include "ui_uiradarperform.h"

UiRadarPerform::UiRadarPerform(QWidget *parent) :
    UiInterface(parent),
    ui(new Ui::UiRadarPerform)
{
    ui->setupUi(this);
    (void)_init();
}

UiRadarPerform::~UiRadarPerform()
{
    delete ui;
}


uiradarperform.ui

可自定义界面

3、在mainwindow.ui里拖入一个QStackedWidget

4、在mainwindow.cpp构造函数里

UiRadarPerform* pUI = new UiRadarPerform;
ui->stackedWidget->addWidget(pUI);

 

 

ps:重点和难点就是对Qt设计师界面类的修改,默认是继承QWidget,改成继承UiInterface类

标签:界面,parent,UiInterface,ui,QWidget,动态,uiradarperform,QStackedWidget,UiRadarPerform
来源: https://www.cnblogs.com/judes/p/14438897.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有