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

来源:互联网 发布:上海开票软件 网络配置 编辑:程序博客网 时间:2024/05/23 00:08

堆栈窗体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();

2 0
原创粉丝点击