×
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.
144 page views in the last 30 days.
×