×
Namespaces

Variants
Actions

如何在QTabBar中插入小部件(Widget)

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台:
Symbian

文章
dougcn 在 15 Mar 2009 创建
最后由 hamishwillee 在 11 Oct 2012 编辑
  • 运行平台:S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition
  • 运行设备:Qt Creator IDE & S60 Emulator
  • 关键字:web browser in Qt,QWebView,QToolBar,QStatusBar

Contents

介绍

在这个简单程序中,你可以给TabBar添加一些小部件(按钮、单选按钮等)。这种tab bar有助于跨多个应用界面时切换。

Qt Creator IDE V4.5的下载链接

兼容性

  • 此源代码与Qt v4.5兼容,且有一些而细小的函数升级
  • 此源代码可在Carbide C++中开发且执行。

如何创建此小部件

1) 创建一个QTabWidget.

2) 为tab对话框上的每一页创建一个QWidget,但不要指定它们的父部件。

3) 将子widget插入到页widget中,照常使用布局来定位它们。

4) 调用addTab()或insertTab()将页widget放入tab widget,给每个tab设一个适当的标签(及键盘快捷方式,可选)。


功能

  • 在窗口区域内,我们可以在任何位置拖拽任何tab bar。
  • 若有大量的tab就需要嵌入setScroll事件,用一个滚动条在tab bar之间进行切换


各种函数

  • 这个属性控制在给定的tab bar大小没有足够的空间显示项目时如何略去它们。
wid->setElideMode(Qt::ElideRight);
  • 添加Tab到Tab Bar
 wid->addTab(window,str);
  • 这个属性保持在此tab widget中tabs的位置
wid->setTabPosition(QTabWidget::South);

Orientation.JPG

  • 这个属性保持用户是否在能在tabbar区域内移动tab。
wid->setMovable(1);

源代码

#include <QtGui/QApplication>
#include "tabwidgetdialog.h"
#include <QtGui>
#include <QApplication>
#include <Qwidget>
#include <QGroupBox>
#include <QCheckBox>
#include <QTabWidget>
#include <QString>
#include <QRadioButton>
 
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
 
QTabWidget *wid=new QTabWidget();
 
QString str("Nokia N-Series");
QString str1("Nokia E-Series");
QString str2("I LOVE MY INDIA");
 
QWidget *window=new QWidget();
QVBoxLayout *layout=new QVBoxLayout();
QVBoxLayout *layout1=new QVBoxLayout();
 
QGroupBox *group=new QGroupBox();
group->resize(300,300);
group->setLayout(layout);
group->setAlignment(Qt::AlignHCenter);
group->setCheckable(true);
 
QCheckBox *chk1=new QCheckBox("Nokia N97");
QCheckBox *chk2=new QCheckBox("Nokia N96");
QCheckBox *chk3=new QCheckBox("Nokia N73");
group->setTitle("&Nokia Phones");
layout1->addWidget(group);
layout->addWidget(chk1);
layout->addWidget(chk2);
layout->addWidget(chk3);
window->setLayout(layout1);
window->show();
 
QWidget *wdn=new QWidget();
QVBoxLayout *lay=new QVBoxLayout();
QVBoxLayout *lay1=new QVBoxLayout();
QGroupBox *group1=new QGroupBox();
group1->resize(300,300);
group1->setLayout(lay);
group1->setAlignment(Qt::AlignHCenter);
group1->setCheckable(true);
 
QCheckBox *chk4=new QCheckBox("Nokia E51");
QCheckBox *chk5=new QCheckBox("Nokia E52");
QCheckBox *chk6=new QCheckBox("Nokia E75");
group1->setTitle("&Phones");
lay1->addWidget(group1);
lay->addWidget(chk4);
lay->addWidget(chk5);
lay->addWidget(chk6);
wdn->setLayout(lay1);
wdn->show();
 
QWidget *wd=new QWidget();
QVBoxLayout *ly=new QVBoxLayout();
QVBoxLayout *ly1=new QVBoxLayout();
QGroupBox *group2=new QGroupBox();
group2->resize(300,300);
group2->setLayout(ly);
group2->setAlignment(Qt::AlignHCenter);
group2->setCheckable(true);
QRadioButton *Rad1=new QRadioButton("J&K");
QRadioButton *Rad2=new QRadioButton("DELHI");
QRadioButton *Rad3=new QRadioButton("AHMD");
QRadioButton *Rad4=new QRadioButton("Kolkata");
group2->setTitle("INDIA");
ly1->addWidget(group2);
ly->addWidget(Rad1);
ly->addWidget(Rad2);
ly->addWidget(Rad3);
ly->addWidget(Rad4);
wd->setLayout(ly1);
wd->show();
 
wid->setElideMode(Qt::ElideRight);
wid->setMovable(1);
// wid->setTabPosition(QTabWidget::South); // This is used to set The tab orientation.
wid->setDocumentMode(1);
wid->addTab(window,str);
wid->addTab(wdn,str1);
wid->addTab(wd,str2);
wid->show();
 
return a.exec();
}


屏幕截图

  • 这是第一个Tab。

NokaNtab.JPG

  • Tab拖拽演示

Tabdragging.JPG

  • 这是第二个Tab。.

NokiaEtab.JPG

  • 这是第三个Tab。

NokiaCountry.JPG


有关QTabWidget的更多内容,请访问: http://pepper.troll.no/s60prereleases/doc/qtabwidget.html

内部链接

This page was last modified on 11 October 2012, at 04:19.
185 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×