Qt布局管理: 堆栈窗体QStackedWidget类(纯代码实现)

堆栈窗体QStackedWidget类是经常在应用程序中用到的,在实际应用中,堆栈窗体多与列表框QlistWidget和下拉列表框QCombobox配合使用。


下面我就讲一讲QStackedWidget的代码实现。


1. 建立项目时基类选择QDialog,取消Gernerate form复选框的选中状态。(项目名自定义)

2. 打开头文件“dialog.h”,添加以下代码:

private:
    QListWidget *list;
    QStackedWidget *stack;
    QLabel *label1;
    QLabel *label2;
    QLabel *label3;

同时添加一下头文件:

#include <QListWidget>
#include <QStackedWidget>
#include <QLabel>
3. 打开“dialog.cpp”文件,添加如下代码:

    setWindowTitle(tr("StackedWidget"));
    list = new QListWidget(this);   //定义列表项
    list->insertItem(0,tr("windows1"));
    list->insertItem(1,tr("windows2"));
    list->insertItem(2,tr("windows3"));

    label1 = new QLabel(tr("WindowsTest1"));    //生成label对象,并赋值
    label2 = new QLabel(tr("WindowsTest2"));
    label3 = new QLabel(tr("WindowsTest3"));

    QPalette pe;
    pe.setColor(QPalette::WindowText,Qt::red);
    label1->setPalette(pe);
    label2->setPalette(pe);
    label3->setPalette(pe);


    stack = new QStackedWidget(this);   //生成堆栈部件对象

    stack->addWidget(label1);   //label对象载入到堆栈部件
    stack->addWidget(label2);
    stack->addWidget(label3);

    QHBoxLayout *mainLayout = new QHBoxLayout(this);    //对整个对话框进行布局
    mainLayout->setMargin(5);   //控件距离边界的距离
    mainLayout->setSpacing(0);
    mainLayout->addWidget(list);
    mainLayout->addWidget(stack,0,Qt::AlignHCenter);    //默认左对齐
    mainLayout->setStretchFactor(list,1);
    mainLayout->setStretchFactor(stack,3);
    connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));

同时在头部加入头文件:#include "dialog.h"

4. 主函数如下:

#include "dialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    QFont font("楷体",20,QFont::Bold);    //设定整个应用程序界面的中的字体和字号等格式
    a.setFont(font);

    Dialog w;

    //w.setMaximumSize(600,300);  //设定控件的最大长宽度
    //w.setMinimumSize(200,100);  //设定控件的最小长宽度

    w.setFixedSize(600, 200);   //将窗口大小固定
    w.setWindowFlags(Qt::WindowCloseButtonHint);    //隐藏多余的按钮,只剩下关闭按钮

    w.show();

    return a.exec();
}


5.  运行结果如下:



本例中使用的一下函数小结:

设定整个应用程序界面的中的字体和字号等格式:
QApplication a(argc, argv);
QFont font("楷体",20,QFont::Bold); 
a.setFont(font);

//设定窗口大小的一些函数:
Dialog w;
w.setMaximumSize(600,300);  //设定控件的最大长宽度
w.setMinimumSize(200,100);  //设定控件的最小长宽度

//w.setFixedSize(600, 200);   //将窗口大小固定


//隐藏多余的按钮,只剩下关闭按钮:

w.setWindowFlags(Qt::WindowCloseButtonHint);   

w.show();

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值