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();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM