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采用手動編寫代碼的方式實現。
效果圖,如下:
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(); }