【Qt】StackedWidget

一个简单的堆栈窗体类:

左側列表框会出现不同的选项,右側显示所选的不同的窗口

#include<QHBoxLayout>
#include "stackdlg.h"

StackDlg::StackDlg(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("StackedWidget"));
    list=new QListWidget(this);
    list->insertItem(0,tr("Window1"));//在新建的QListWidget插入3个条目
    list->insertItem(1,tr("Window2"));
    list->insertItem(2,tr("Window3"));

    label1=new QLabel(tr("WindowTest1"));//作为堆栈窗口所需的三层窗口
    label2=new QLabel(tr("WindowTest2"));
    label3=new QLabel(tr("WindowTest3"));

    stack=new QStackedWidget(this);//依次插入
    stack->addWidget(label1);
    stack->addWidget(label2);
    stack->addWidget(label3);

    QHBoxLayout *mainLayout=new QHBoxLayout(this);//进行布局
    mainLayout->setMargin(5);//设定对话框的边距为5
    mainLayout->setSpacing(5);//设定各个控件之间的距离为5
    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)));
}

StackDlg::~StackDlg()
{

}

结果展示:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

时间: 2024-08-03 11:08:10

【Qt】StackedWidget的相关文章

【QT】找茬外挂制作

找茬外挂制作 找茬游戏大家肯定都很熟悉吧,两张类似的图片,找里面的不同.在下眼神不大好,经常瞪图片半天也找不到区别.于是乎决定做个辅助工具来解放一下自己的双眼. 一.使用工具 Qt:主要是用来做界面的 OpenCV: 用于图像处理 C++: 基本实现语言 Qt中OpenCV的配置在[QT]OpenCV配置中讲过了,不会配置的可以看看. 二.实现方案 我要做一个通用的找茬辅助工具,即可以在所有PC找茬游戏中使用.这意味着我们不能通过获取游戏窗口句柄来定位游戏界面.那怎么办呢?灵光一闪,我想到了截图

【Qt】使用QProcess调用其它程序或脚本

大概试了一下,还是不错的,不过字符编码问题还不太好解决: 代码: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> #include <QProcess> #include <QTextCodec> #include <QCloseEvent> MainWindow::MainWindow(QWidget *parent)

【Qt 】QSettings写ini配置文件

QSettings写ini配置文件(Qt版本5.2): #include "inidemo.h" #include <QSettings> #include <QTextCodec> IniDemo::IniDemo(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); QSettings settings("setting.ini",QSettings::IniFormat);

【Qt】2.3 使用Qt设计师来创建对话框

安装完Qt OpenSource之后,在开始菜单目录下会有这几个东西. 其中[Designer]是用来设计窗口界面的程序.所以现在可以使用它来设计一个对话框.在[Qt Creator]中,[设计]这一项里也可以做界面的设计. 打开[Designer],会默认弹出[新建窗体],选择[Dialog without Buttons],这会新建出一个没有任何东西的对话框. [Dialog with Buttons Bottom]和[Dialog with Buttons Right]会创建出包含[确定]

【Qt】C++中的循环遍历

介绍 本文主要讨论C++中常见的几种循环遍历操作的语法:基于迭代器.基于Qt库中的foreach关键字.基于C++11新增的for循环语句. 基于迭代器的遍历 在C++容器中经常需要进行遍历操作,在C++11之前一般使用下面这种方式--基于迭代器的遍历: QList<QString> list {"a", "b", "c", "d"}; QList<QString>::const_iterator ci

【Qt】学习笔记(一)

1.setupUi(this) : setupUi(this)是由.ui文件生成的类的构造函数这个函数的作用是对界面进行初始化它按照我们在Qt设计器里设计的样子把窗体画出来 setupUi(this)会自动把符合on_objectName_signalName()命名的任意槽与相应的objectName的signalName()连接在一起.即 void GoToCellDialog::on_lineEdit_textChanged() { okButton->setEnabled(lineEdi

【QT】ui转代码

windows中安装qt目录下的BIN文件夹里有个uic.exe把UIC.exe和你要转换的xxx.ui文件拷贝到同一目录.开始菜单,运行CMD,命令进入uic.exe和xxx.ui的目录,(或在存放文件的目录上右键选择 “Dos在这里”) 运行以下命令:uic xxx.ui -o xxx.h 生成.h文件uic xxx.ui -o xxx.cpp 生成.cpp文件 来源:http://hi.baidu.com/iblogiam/item/ae2e4e15ded50aea9813d6ae 拖了好

【QT】QString类型转换为const char*

Qstring str = "helloworld"; char *s; QByteArray ba = str.toLatin1(); s = ba.data(); toLatin1.toLocal8Bit都是QString转QByteArray的方法,Latin1代表ASCII,Local8Bit代表unicode. const char* 指向字符常量的指针 const char * ss= "xxxxxx";    // 这个表示的是指针指向的内容不可修改c

【QT】对话框打开图像并用QPixmap显示

绘图设备是指继承QPaintDevice的子类,可以使用QPainter直接在其上面绘制图形,Qt一共提供了四个这样继承QPaintDevice的绘图设备类. 分别是QPixmap.QBitmap.QImage和 QPicture. //打开文件对话框 QString lastPath="D:/Englishpath/QTprojects/DATA/videoData"; fileName = QFileDialog::getOpenFileName(this, tr("打开