堆栈窗口 QStackedWidget 测试
2013-12-31 16:22
316 查看
QStackedWidget采用堆栈的思想,将不同的widget通过addwidget()函数放进该类的对象中,并默认编号,也可显式编号,默认从0开始。indexOf()函数获取显示widget的页号或编号setCurrentIndex(int) 来显示该页号的widget。nice~实例来一发(1)效果图效果图1效果图2(2)代码实现.h文件:
#ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include<QListWidget> #include<QStackedWidget> #include<QTableWidget> class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog(); private: QListWidget *listwidget; QStackedWidget *stackedwidget; QTableWidget *tablewidget1; QTableWidget *tablewidget2; QTableWidget *tablewidget3; }; #endif // DIALOG_H.cpp文件:
#include "dialog.h" #include<QHBoxLayout> Dialog::Dialog(QWidget *parent) : QDialog(parent) { listwidget = new QListWidget; listwidget->addItem(tr("tablewidget1")); listwidget->addItem(tr("tablewidget2")); listwidget->addItem(tr("tablewidget3")); tablewidget1 = new QTableWidget(2, 2, 0); tablewidget2 = new QTableWidget(4, 4, 0); tablewidget3 = new QTableWidget(8, 8, 0); stackedwidget = new QStackedWidget; stackedwidget->addWidget(tablewidget1); stackedwidget->addWidget(tablewidget2); stackedwidget->addWidget(tablewidget3); QHBoxLayout *h_layout = new QHBoxLayout; h_layout->addWidget(listwidget); h_layout->addWidget(stackedwidget); h_layout->setStretchFactor(listwidget, 1); h_layout->setStretchFactor(stackedwidget, 8); setLayout(h_layout); setWindowTitle(tr("QStackedWidget Test")); setFixedSize(950, 300); QObject::connect(listwidget, SIGNAL(currentRowChanged(int)), stackedwidget, SLOT(setCurrentIndex(int))); } Dialog::~Dialog() { }main():
#include "dialog.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Dialog w; w.show(); return a.exec(); }(3)补充说明1、QStackedWidget里装了3个QTableWidget对象,分别是2X2,4X4, 8X82、
#include<QListWidget>
#include<QStackedWidget>
这个两个头文件不可少3、 通过调用QHBoxLayout的函数setStrechFactor()来缩放和拉伸控件。4、<<C++ GUI QT 4>>中用另一种方法:stackedLayout = new QStackedLayout;stackedLayout->addWidget(appearancePage);stackedLayout->addWidget(webBrowserPage);stackedLayout->addWidget(mailAndNewsPage);stackedLayout->addWidget(advancedPage);通过QStackedWidget类中的QStackedLayout 分组布局来管理widget,效果一样
相关文章推荐
- 今天正式来到CSDN了!
- VC6中全局变量问题和错误:already defined in StdAfx.obj
- Qt国际化出错导致汉化不完全
- jbpm中得gpd.xml中文出现乱码解决方法
- SecureCRT远程连接ubuntu设置
- linux 与 windows 文件编码问题
- ECMAScript引用类型
- va_list-关于方法变参的问题
- C#将TXT内容插入数据库
- DIV使用tabindex获得事件详解 移动div
- 深入理解java中的synchronized关键字
- No content provider found for permission revoke:
- DML对innodb索引的影响
- 开机启动服务
- 防止二次提交
- MongoDB的Replica Sets的介绍和部署
- Cocos2D-x A星寻路法
- 组合数学引论 第一章 答案 6-10
- Delphi - 数组 详解
- Simple scanner of c