QT 多页面切换之QTabWidget

  1.  //mydialog.h   
  2. #ifndef MYDIALOG_H   
  3. #define MYDIALOG_H   
  4. #include <QDialog>   
  5. class QTabWidget;  
  6. class MyDialog : public QDialog  
  7. {  
  8.   Q_OBJECT  
  9. public:  
  10.   explicit MyDialog(QWidget *parent = 0);  
  11. signals:  
  12. public slots:  
  13. private:  
  14.   QTabWidget *tabWidget;  
  15. };  
  16. #endif // MYDIALOG_H  
 //mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
class QTabWidget;
class MyDialog : public QDialog
{
  Q_OBJECT
public:
  explicit MyDialog(QWidget *parent = 0);
signals:
public slots:
private:
  QTabWidget *tabWidget;
};
#endif // MYDIALOG_H


 

  1. //mydialog.cpp   
  2. #include "mydialog.h"   
  3. #include <QtGui/QTabWidget>   
  4. #include <QtGui/QHBoxLayout>   
  5. #include <QtGui/QVBoxLayout>   
  6. #include <QtGui/QLabel>   
  7. #include <QtGui/QLineEdit>   
  8. #include <QtGui/QPushButton>   
  9. #include <QtGui/QWidget>   
  10. #include <QtGui/QIcon>   
  11. MyDialog::MyDialog(QWidget *parent) :  
  12.   QDialog(parent)  
  13. {  
  14.   tabWidget = new QTabWidget();  
  15.   
  16.   //新建第一个页面的部件   
  17.   QWidget *widget = new QWidget();  
  18.   QLineEdit *lineEdit = new QLineEdit();  
  19.   QPushButton *pushButton = new QPushButton("Test");  
  20.   QVBoxLayout *vLayout = new QVBoxLayout();  
  21.   vLayout->addWidget(lineEdit);  
  22.   vLayout->addWidget(pushButton);  
  23.   widget->setLayout(vLayout);  
  24.   
  25.   
  26.   //新建第二个页面的部件   
  27.   QLabel *label = new QLabel("Hello Qt");  
  28.   
  29.   //新建第三个页面的部件   
  30.   QPushButton *pushButton3 = new QPushButton("Click Me");  
  31.   
  32.   //向QTabWidget中添加第一个页面   
  33.   QIcon icon1(":/new/icon/images/1.ico");  
  34.   tabWidget->addTab(widget, icon1, "Tab1");  
  35.   
  36.   //向QTabWidget中添加第二个页面   
  37.   QIcon icon2(":/new/icon/images/2.ico");  
  38.   tabWidget->addTab(label, icon2, "Tab2");  
  39.   
  40.   //向QTabWidget中添加第三个页面   
  41.   QIcon icon3(":/new/icon/images/3.ico");  
  42.   tabWidget->addTab(pushButton3, icon3, "Tab3");  
  43.   
  44.   QHBoxLayout *layout = new QHBoxLayout();  
  45.   layout->addWidget(tabWidget);  
  46.   
  47.   this->setLayout(layout);  
  48.   this->resize(300, 100);  
  49.   this->setWindowTitle("QTabWidgetDemo");  
  50. }  
//mydialog.cpp
#include "mydialog.h"
#include <QtGui/QTabWidget>
#include <QtGui/QHBoxLayout>
#include <QtGui/QVBoxLayout>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QPushButton>
#include <QtGui/QWidget>
#include <QtGui/QIcon>
MyDialog::MyDialog(QWidget *parent) :
  QDialog(parent)
{
  tabWidget = new QTabWidget();

  //新建第一个页面的部件
  QWidget *widget = new QWidget();
  QLineEdit *lineEdit = new QLineEdit();
  QPushButton *pushButton = new QPushButton("Test");
  QVBoxLayout *vLayout = new QVBoxLayout();
  vLayout->addWidget(lineEdit);
  vLayout->addWidget(pushButton);
  widget->setLayout(vLayout);


  //新建第二个页面的部件
  QLabel *label = new QLabel("Hello Qt");

  //新建第三个页面的部件
  QPushButton *pushButton3 = new QPushButton("Click Me");

  //向QTabWidget中添加第一个页面
  QIcon icon1(":/new/icon/images/1.ico");
  tabWidget->addTab(widget, icon1, "Tab1");

  //向QTabWidget中添加第二个页面
  QIcon icon2(":/new/icon/images/2.ico");
  tabWidget->addTab(label, icon2, "Tab2");

  //向QTabWidget中添加第三个页面
  QIcon icon3(":/new/icon/images/3.ico");
  tabWidget->addTab(pushButton3, icon3, "Tab3");

  QHBoxLayout *layout = new QHBoxLayout();
  layout->addWidget(tabWidget);

  this->setLayout(layout);
  this->resize(300, 100);
  this->setWindowTitle("QTabWidgetDemo");
}


 

  1. //main.cpp   
  2. #include <QtGui/QApplication>   
  3. #include "mydialog.h"   
  4. int main(int argc, char *argv[])  
  5. {  
  6.   QApplication a(argc, argv);  
  7.   MyDialog dialog;  
  8.   dialog.show();  
  9.   return a.exec();  
  10. }  
//main.cpp
#include <QtGui/QApplication>
#include "mydialog.h"
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  MyDialog dialog;
  dialog.show();
  return a.exec();
}


 

资源文件截图:

 

程序运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值