读书频道 > 网站 > 网页设计 > Linux环境下Qt4图形界面与MySQL编程
3.6.7 示例11:TabWidget的应用
12-11-05    奋斗的小年轻
收藏    我要投稿   
在Linux操作系统环境下,图形界面与数据库编程技术越来越受到广泛重视。本书以图形界面编程控件与数据库编程基础→简单易学的实例→实际工程项目开发与场景分析为写作主线,以当前最新的Qt4.7为依据,采...立即去当当网订购

TabWidget控件是一个经常使用的控件,它可以把很多内容集中在一个窗体中,以减少很多窗体,使软件界面美观大方,操作简便。下面我们就通过这个示例来了解TabWidget的具体用法。

首先创建标准的Qt Gui Application项目,把项目自动生成的主界面中的toolBar、menuBar和statusBar删除,界面设计结果如图3-52所示。


 

1.控件说明

在属性编辑窗口中对控件的属性进行修改,修改内容如表3-15所示。


 

2.示例说明

?在设计界面时,TabWidget控件中有一个Tab1选项卡;

?自定义3个选项卡QLabel、QPushButton和QTextEdit,分别添加到tabWidget控件中;

?单击“addTab”按钮,在TabWidget控件中添加一个新的选项卡;

?程序执行后,可以关闭TabWidget中的选项卡。

3.示例实现

头文件mainwindow.h(文中的粗体为需要添加的内容):
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
 class MainWindow;
}
class MainWindow : public QMainWindow
{
 Q_OBJECT
public:
 explicit MainWindow(QWidget *parent = 0);
 ~MainWindow();
private:
 Ui::MainWindow *ui;
private slots:   //声明槽函数
 void on_btnAddTab_clicked();
 void removeSubTab(int index);
};
#endif // MAINWINDOW_H

声明两个槽函数,槽函数on_btnAddTab_clicked()对应单击按钮“addTab”,是通过右击控件→Go to slots自动生成的,所以不用在实现文件中添加映射函数。槽函数removeSubTab(int index)对应关闭选项卡信号。

在主窗体mainwindow.cpp文件中自动生成如下代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
 QMainWindow(parent),
 ui(new Ui::MainWindow)
{
 ui->setupUi(this);
}
MainWindow::~MainWindow()
{
 delete ui;
}

在主窗体mainwindow.cpp文件中添加的头文件:
#include <QLabel>
#include <QPushButton>
#include <QTextEdit>

在主窗体mainwindow.cpp文件中构造函数:
/***构造函数***/
MainWindow::MainWindow(QWidget *parent) :
 QMainWindow(parent),
 ui(new Ui::MainWindow)
{
 ui->setupUi(this);

 /************界面初始化*************************/
 ui->tabWidget->setWindowTitle("TabWidget");
 ui->tabWidget->addTab(new QLabel("<h1><font
 color=blue>Hello!World!</font></h1>"),"QLabel");
 ui->tabWidget->addTab(new QPushButton("Push XD"), "QPushButton");
 ui->tabWidget->addTab(new QTextEdit, "QTextEdit");
 ui->tabWidget->setTabsClosable(true);

 /************信号和槽的映射************************/
 connect(ui->tabWidget,SIGNAL(tabCloseRequested(int)),this,SLOT(removeSubTab(int)));
}

在主窗体mainwindow.cpp文件中添加槽函数removeSubTab(int index):
/***槽函数:删除tab***/
void MainWindow::removeSubTab(int index)
{
  ui->tabWidget->removeTab(index);
}

在主窗体mainwindow.cpp文件中添加槽函数on_btnAddTab_clicked():
/***槽函数:添加tab***/
void MainWindow::on_btnAddTab_clicked()
{
 QTextEdit *edit=new QTextEdit;

 /************设置edit显示Hello World!*************************/
 edit->setHtml("<h1><font color=red>Hello World!</font></h1>");
 ui->tabWidget->addTab(edit,"New Tab");
 ui->tabWidget->setCurrentIndex(ui->tabWidget->count()-1);
}

主文件main.cpp不需任何更改,使用项目自动生成的即可。

4.示例执行结果

示例执行结果如图3-53所示。


 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站