实际上,我遇到了一个大问题,我有一个 QTabWidget,其中包含多个名为 tab 的 QWidget 继承对象,我想更改 QTabWidget 索引功能中的 QStatusBar 但 QMainwindow 删除 QStatusBar (位于 Tab 对象中) 每次我更改选项卡时都会导致应用程序崩溃。这是我的代码
主窗口.h
#ifndef TAB_H
#define TAB_H
#include <QtWidgets>
class Tab : public QWidget
{
public:
Tab(int id);
QStatusBar *sbar;
private:
};
#endif // TAB_H
主窗口.cpp
#include "mainwindow.h"
#include "tab.h"
MainWindow::MainWindow()
{
tabs = new QTabWidget();
resize(800, 600);
connect(tabs, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int)));
for(int i = 0; i < 20; i++)
{
tabs->addTab(new Tab(i), QString("%1").arg(i));
}
setCentralWidget(tabs);
}
MainWindow::~MainWindow()
{
}
void MainWindow::currentChanged(int)
{
Tab *thistab = static_cast<Tab*>(sender());
setStatusBar(new QStatusBar());
}
选项卡.h
#ifndef TAB_H
#define TAB_H
#include <QtWidgets>
class Tab : public QWidget
{
public:
Tab(int id);
QStatusBar *sbar;
private:
};
#endif // TAB_H
选项卡.cpp
#include "tab.h"
Tab::Tab(int id)
{
sbar = new QStatusBar();
QHBoxLayout hbl;
QLabel *ll = new QLabel("StatusBar tester: Tab number : #"+QString("%1").arg(id));
sbar->addWidget(new QLabel(QString("%1").arg(id)));
hbl.addWidget(ll);
setLayout(&hbl);
}
谢谢你的耐心