Qt 实现多窗口切换 - 使用 QSplitter 和 QStackedWidget
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()));
这样应该就可以正常关闭了。
原文地址: https://www.cveoy.top/t/topic/owdn 著作权归作者所有。请勿转载和采集!