zoukankan      html  css  js  c++  java
  • Qt之ui在程序中的使用——(2)多继承法

    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页面较多时,使用单继承法则要灵活的多。。


  • 相关阅读:
    flush()方法
    多对一关联映射(manytoone)
    Hibernate配置数据库解决插入乱码问题
    lazy
    一对多关联映射(单向)
    属性类的映射
    多对多关联(双向)
    多对多关联映射(单向)
    多态查询
    Visual C# 2008+SQL Server 2005 数据库与网络开发11.2.2 LINQ的基本查询操作
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/2767503.html
Copyright © 2011-2022 走看看