拓者吧室内设计网站网站建设工作总结
大概是,把应该在构造函数中初始化的堆栈窗体代码写到了析构函数中。。。。
不是因为没掌握构造/析构,而是。。。。
检查了四十多分钟没检查出来。。
被自己蠢哭。
#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent)
{
}Widget::~Widget()
{// 初始化三个窗体QWidget *firstPageWidget = new QWidget;QWidget *secondPageWidget = new QWidget;QWidget *thirdPageWidget = new QWidget;// 在三个窗体分别设置三个按钮QPushButton *btn1 = new QPushButton("Page 1", firstPageWidget);QPushButton *btn2 = new QPushButton("Page 2", secondPageWidget);QPushButton *btn3 = new QPushButton("Page 3", thirdPageWidget);// 实例化堆栈窗体对象,把窗体添加到堆栈窗体QStackedWidget *stackedWidget = new QStackedWidget;stackedWidget->addWidget(firstPageWidget);stackedWidget->addWidget(secondPageWidget);stackedWidget->addWidget(thirdPageWidget);// QListWidget *listWidget = new QListWidget;
// QListWidgetItem *firstItem = new QListWidgetItem(tr("First"), listWidget);
// QListWidgetItem *secondItem = new QListWidgetItem(tr("Second"), listWidget);
// QListWidgetItem *thirdItem = new QListWidgetItem(tr("Third"), listWidget);// listWidget->insertItem(0, firstItem);
// listWidget->insertItem(1, secondItem);
// listWidget->insertItem(2, thirdItem); // 两种方法都可以,方法一QListWidget *listWidget = new QListWidget; // 方法二listWidget->addItem(tr("First"));listWidget->addItem(tr("Second")); listWidget->addItem(tr("Third"));QHBoxLayout *layout = new QHBoxLayout;layout->addWidget(listWidget, 1);layout->addWidget(stackedWidget, 3);this->setLayout(layout);connect(listWidget, SIGNAL(currentRowChanged(int)), stackedWidget, SLOT(setCurrentIndex(int)));// 堆栈窗体的槽是确定的 —— setCurrentIndex(int),也就意味着对应信号的参数也必须和槽匹配this->resize(960, 600);
}