Qt之ui在程序中的使用-多继承法介绍

 更新时间:2012年11月13日 11:35:44   作者:  
本文将介绍Qt之ui在程序中的使用-多继承法,需要的朋友可以参考
thirdDialog.h
复制代码 代码如下:

#ifndef THIRDDIALOG_H
#define THIRDDIALOG_H
#include <QtGui>
#include "ui_third.h"
class thirdDialog:public QDialog,private Ui::Third
{
Q_OBJECT
public:
thirdDialog(QWidget *parent=0);
~thirdDialog();
};
#endif

thirdDialog.cpp
#include "thirdDialog.h"
thirdDialog::thirdDialog(QWidget *parent)
{
setupUi(this);
}
thirdDialog::~thirdDialog()
{
}

maindialog.h
复制代码 代码如下:

#ifndef MAINDIALOG_H
#define MAINDIALOG_H
#include <QtGui>
#include "ui_first.h"
#include "ui_second.h"
#include "thirdDialog.h"

class MainDialog : public QDialog
{
Q_OBJECT
public:
MainDialog(QWidget *parent = 0, Qt::WFlags flags = 0);
~MainDialog();
private:
Ui::First firstUi;
Ui::Second secondUi;
private slots:
void on_btnChild_clicked();
};
#endif // MAINDIALOG_H

maindialog.cpp
复制代码 代码如下:

#include "maindialog.h"
MainDialog::MainDialog(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
QTabWidget *tabWidget = new QTabWidget(this);
QDialog *w1 = new QDialog;
firstUi.setupUi(w1);
QWidget *w2 = new QWidget;
secondUi.setupUi(w2);
tabWidget->addTab(w1,tr("First Tab"));
tabWidget->addTab(w2,tr("Second Tab"));
tabWidget->resize(300,300);
connect(firstUi.btnClose,SIGNAL(clicked()),this,SLOT(close()));
connect(secondUi.btnChild,SIGNAL(clicked()),this,SLOT(on_btnChild_clicked()));
}
MainDialog::~MainDialog()
{
}
void MainDialog::on_btnChild_clicked()
{
thirdDialog *dlg = new thirdDialog;
dlg->exec();
}

分析:
多继承方式可直接对ui界面上的控件或函数进行操作,代码编写更简洁;
而是用单继承方式,在操作ui页面上的控件时需加上ui对象前缀,编写代码较为麻烦。
但,对于程序中所需ui页面较多时,使用单继承法则要灵活的多。。

相关文章

  • C++调用迅雷接口解析XML下载功能(迅雷下载功能)

    C++调用迅雷接口解析XML下载功能(迅雷下载功能)

    这篇文章主要介绍了C++调用迅雷接口,封装解析XML下载的类,功能简单,大家参考使用吧
    2013-11-11
  • C++实现产生随机数和相应的猜拳小游戏实例代码

    C++实现产生随机数和相应的猜拳小游戏实例代码

    C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。下面这篇文章主要给大家介绍了关于C++实现产生随机数和相应的猜拳小游戏的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • opencv3/C++实现光流点追踪

    opencv3/C++实现光流点追踪

    今天小编就为大家分享一篇opencv3/C++实现光流点追踪,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 常用的STL查找算法

    常用的STL查找算法

    这篇文章主要介绍了常用的STL查找算法的相关资料,十分的详细,需要的朋友可以参考下
    2015-07-07
  • 函数外初始化与函数内初始化详细解析

    函数外初始化与函数内初始化详细解析

    函数内初始化:bool FillStr(char *&szDst, int nSize);第一个参数中的&一定不能少,这是因为在函数外部我们只声明了这个指针,具体这个指针指向内存中的哪个地址我们并不知道,所以&是为了说明传递的是这个指针的引用,那么在函数内初始化后这个指针的地址也就是外面指针的地址了
    2013-09-09
  • C/C++ 单元自动化测试解决方案总结

    C/C++ 单元自动化测试解决方案总结

    这篇文章主要介绍了C/C++ 单元自动化测试解决方案总结,通过利用GCC插件来实现提升C/C++开发者的单元效率工具解决方案,希望对大家在提升单元测试效率上有所启发
    2022-06-06
  • C语言数据结构之双向循环链表的实例

    C语言数据结构之双向循环链表的实例

    这篇文章主要介绍了C语言数据结构之双向循环链表的实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • C++实现LeetCode(7.翻转整数)

    C++实现LeetCode(7.翻转整数)

    这篇文章主要介绍了C++实现LeetCode(7.翻转整数),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++ std::initializer_list 实现原理解析及遇到问题

    C++ std::initializer_list 实现原理解析及遇到问题

    这篇文章主要介绍了C++ std::initializer_list 实现原理勘误,本文通过源码解析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • C++基于控制台实现的贪吃蛇小游戏

    C++基于控制台实现的贪吃蛇小游戏

    这篇文章主要介绍了C++基于控制台实现的贪吃蛇小游戏,实例分析了贪吃蛇游戏的原理与C++实现技巧,是非常经典的游戏算法,需要的朋友可以参考下
    2015-04-04

最新评论