天下

记录修行的印记

QT学习笔记(9):堆栈窗口

//StackDlg.h
#pragma once
#include 
<QtGui>
class StackDlg : public QDialog
{
    Q_OBJECT
public:
    StackDlg(QWidget 
*parent = 0, Qt::WindowFlags f1 = 0);

    QLabel 
*label1;
    QLabel 
*label2;
    QLabel 
*label3;
    QListWidget 
*listwidget;
    QStackedWidget 
*stackwidget;
};


//StackDlg.cpp
#include "stack.h"

StackDlg::StackDlg(QWidget 
*parent, Qt::WindowFlags f1) : QDialog(parent,f1)
{
    setWindowTitle(tr(
"Stacked Widgets"));
    
    listwidget 
= new QListWidget(this);
    listwidget
->insertItem(0,tr("Window 1"));
    listwidget
->insertItem(1,tr("Window 2"));
    listwidget
->insertItem(2,tr("Window 3"));
     
    label1 
= new QLabel(tr("This is Window 1 !"));
    label2 
= new QLabel(tr("This is Window 2 !"));
    label3 
= new QLabel(tr("This is Window 3 !"));
       
    stackwidget 
= new QStackedWidget(this);
    stackwidget
->addWidget(label1);
    stackwidget
->addWidget(label2);
    stackwidget
->addWidget(label3);
     
    QHBoxLayout 
*mainLayout = new QHBoxLayout(this);
    mainLayout
->setMargin(0);
    mainLayout
->setSpacing(0);

    mainLayout
->addWidget(listwidget,1);    //延伸因子为1

    mainLayout
->addWidget(stackwidget,3,Qt::AlignLeft); //延伸因子为3

    
//mainLayout->setStretchFactor(list,1);    //设置延伸因子为1
    
//mainLayout->setStretchFactor(stackwidget,4); //设置延伸因子为4
    connect(listwidget,SIGNAL(currentRowChanged(int)),stackwidget,SLOT(setCurrentIndex(int)));
}


//main.cpp
#include <QApplication>
#include 
"StackDlg.h"

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    
    StackDlg stack;
    stack.show();
    
return a.exec();
}

posted on 2012-10-17 10:21 天下 阅读(1642) 评论(0)  编辑 收藏 引用 所属分类: QT


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2013年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(4)

随笔分类(378)

随笔档案(329)

链接

最新随笔

搜索

最新评论