int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    QSplitter *a1=new QSplitter(Qt::Horizontal);//主分割水平
    QListWidget *b=new QListWidget(a1);//左侧
    b->addItem('三角形的面积计算');
    b->addItem('矩形的面积计算');
    b->addItem('圆的面积计算');
    //创建右侧
    QWidget *p=new QWidget(a1);
    QVBoxLayout *c=new QVBoxLayout(p);
    QStackedWidget *c1=new QStackedWidget;
    //水平布局
    QHBoxLayout *h=new QHBoxLayout;
    //QPushButton *ps=new QPushButton('修改');
    QPushButton *ps1=new QPushButton('关闭');
    QObject::connect(ps1, SIGNAL(clicked()), &w, SLOT(close()));

    //h->addWidget(ps);
    h->addWidget(ps1);
    h->setAlignment( Qt::AlignRight);
    //把右侧的放入垂直
    c->addWidget(c1);
    c->addLayout(h);
    //w.show();
    //使用Qt界面类创建层叠
    Form1 *d=new Form1;
    Form2 *d1=new Form2;
    Form3 *d2=new Form3;
    c1->addWidget(d);//加入层叠
    c1->addWidget(d1);
    c1->addWidget(d2);
    QObject::connect(b,&QListWidget::currentRowChanged,c1,&QStackedWidget::setCurrentIndex);
    a1->show();
    return a.exec();
}

点击关闭没用内容:可能是因为连接信号和槽的代码有问题。尝试将以下代码:

```cpp
QObject::connect(ps1, &QPushButton::clicked, &w, &QWidget::close);

改为:

QObject::connect(ps1, SIGNAL(clicked()), &w, SLOT(close()));

这样应该就可以正常关闭了。

Qt 实现多窗口切换 - 使用 QSplitter 和 QStackedWidget

原文地址: https://www.cveoy.top/t/topic/owdn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录