Qt之ui在程序中的使用——(1)单继承法

简介:

ui:user interface(用户界面)

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

例:

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

程序实例(一):

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

效果图,如下:

imageimage

image

MyWidget.h

  1. #ifndef MYWIDGET_H  
  2. #define MYWIDGET_H  
  3.   
  4. #include <QtGui>  
  5. #include "ui_first.h"  
  6. #include "ui_second.h"  
  7. #include "ui_third.h"  
  8.   
  9. class MyWidget : public QWidget  
  10. {  
  11.     Q_OBJECT  
  12.   
  13. public:  
  14.     MyWidget(QWidget *parent = 0, Qt::WFlags flags = 0);  
  15.     ~MyWidget();  
  16.   
  17. private:  
  18.     Ui::First firstUi;  
  19.     Ui::Second secondUi;  
  20.     Ui::Third thirdUi;  
  21.       
  22.     private slots:  
  23.         void on_btnChild_clicked();  
  24. };  
  25.   
  26. #endif // MYWIDGET_H  

Mywidget.cpp

  1. #include "mywidget.h"  
  2.   
  3. MyWidget::MyWidget(QWidget *parent, Qt::WFlags flags)  
  4.     : QWidget(parent, flags)  
  5. {  
  6.     QTabWidget *tabWidget = new QTabWidget(this);  
  7.   
  8.     QDialog *w1 = new QDialog;  
  9.     firstUi.setupUi(w1);  
  10.   
  11.     QWidget *w2 = new QWidget;  
  12.     secondUi.setupUi(w2);  
  13.   
  14.     tabWidget->addTab(w1,tr("First Tab"));  
  15.     tabWidget->addTab(w2,tr("Second Tab"));  
  16.     tabWidget->resize(300,300);  
  17.   
  18.     connect(firstUi.btnClose,SIGNAL(clicked()),this,SLOT(close()));  
  19.     connect(secondUi.btnChild,SIGNAL(clicked()),this,SLOT(on_btnChild_clicked()));  
  20. }  
  21.   
  22. MyWidget::~MyWidget()  
  23. {  
  24.   
  25. }  
  26.   
  27. void MyWidget::on_btnChild_clicked()  
  28. {  
  29.     QDialog *dlg = new QDialog;  
  30.     thirdUi.setupUi(dlg);  
  31.     dlg->exec();  
  32. }  

main.cpp

  1. #include "mywidget.h"  
  2. #include <QtGui/QApplication>  
  3.   
  4. int main(int argc, char *argv[])  
  5. {  
  6.     QApplication a(argc, argv);  
  7.     MyWidget w;  
  8.     w.show();  
  9.     return a.exec();  
  10. }  
作者: 韩兆新
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类:  [02]Qt语言基础
标签:  Qt学习笔记

本文转自韩兆新博客博客园博客,原文链接:http://www.cnblogs.com/hanzhaoxin/archive/2012/11/12/2767149.html,如需转载请自行联系原作者
目录
相关文章
|
28天前
【QT】读写.ini配置文件的程序实现
【QT】读写.ini配置文件的程序实现
|
1月前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
67 1
|
2月前
|
Web App开发 JSON JavaScript
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
25 0
|
3月前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
44 1
|
3月前
|
C++
QT第一个程序命名空间详解,解释ui_widget的和xxx.cpp的联系
QT第一个程序命名空间详解,解释ui_widget的和xxx.cpp的联系
35 0
|
3月前
|
编译器
QT creator开发环境下 界面更改后运行程序不能实时更新或者在源文件添加该控件后无法编译的问题
在使用QT Creator开发界面的过程中,偶尔会出现添加控件后,运行程序后,界面控件无法更新的情况,或者在源文件使用该控件却出现无法编译的情况,使用QT Creator 4.8.2也会出现这个情况,也不知道这种情况会不会在以后有所改善。
67 0
|
14天前
|
数据可视化
实现Hello Qt 程序
实现Hello Qt 程序
|
1月前
|
算法 开发者
【Qt UI相关】Qt5和Qt6中关于高DPI缩放属性
【Qt UI相关】Qt5和Qt6中关于高DPI缩放属性
36 1
|
1月前
|
数据可视化
【Qt】—— Hello World程序的实现
【Qt】—— Hello World程序的实现
|
2月前
|
存储 C++ 开发者
QT基础【4-简易的图片查看程序】
QT基础【4-简易的图片查看程序】

推荐镜像

更多