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

    ui:user interface(用户界面)

    void QWidget::setupUi ( QWidget * widget )的功能是设置用户界面到指定的部件;

    例:

    QDialog *dlg_example = new QDialog;
    Ui::example ui_example;    //ui_example是dlg_example对应的用户界面
    ui_example.setupUi(dlg_example);     //关联用户界面与程序中的对象

    程序实例(一):

    利用Qt Designer生成3个简单的ui,在使用时,两个ui插入到主程序的QTabWidget中,另一个ui由按钮触发,主窗口MyWidget采用手动编写代码的方式实现。

    效果图,如下:

    imageimage

    image

    MyWidget.h

    #ifndef MYWIDGET_H
    #define MYWIDGET_H
    
    #include <QtGui>
    #include "ui_first.h"
    #include "ui_second.h"
    #include "ui_third.h"
    
    class MyWidget : public QWidget
    {
    	Q_OBJECT
    
    public:
    	MyWidget(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~MyWidget();
    
    private:
    	Ui::First firstUi;
    	Ui::Second secondUi;
    	Ui::Third thirdUi;
    	
    	private slots:
    		void on_btnChild_clicked();
    };
    
    #endif // MYWIDGET_H
    

    Mywidget.cpp

    #include "mywidget.h"
    
    MyWidget::MyWidget(QWidget *parent, Qt::WFlags flags)
    	: QWidget(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()));
    }
    
    MyWidget::~MyWidget()
    {
    
    }
    
    void MyWidget::on_btnChild_clicked()
    {
    	QDialog *dlg = new QDialog;
    	thirdUi.setupUi(dlg);
    	dlg->exec();
    }
    

    main.cpp

    #include "mywidget.h"
    #include <QtGui/QApplication>
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	MyWidget w;
    	w.show();
    	return a.exec();
    }
    
  • 相关阅读:
    关于BindingSource的ListChange事件
    .Net 中Textbox控件的数据绑定
    Google Chrome OS Open Source Project Announcement
    ajax从基础开始
    如何处理Windows Forms程序中未处理的异常
    Chrome的一个bug? 大家看看
    Extjs学习笔记之二——初识Extjs之Form
    SQLite3简介及在.Net程序中的使用
    Extjs学习笔记之一——初识Extjs之MessageBox
    Extjs学习笔记之三——更多的表单项
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/2767149.html
Copyright © 2011-2022 走看看