首页 > 解决方案 > Qt5 tabwidget - addwidget 异常抛出读取访问冲突

问题描述

在此处创建选项卡小部件并添加选项卡...

抱歉,我错过了这个,创建中央小部件和标签小部件:

QWidget* centralWidget = new QWidget();
QTabWidget* tabWidget = new QTabWidget(centralWidget);
tabWidget->setTabsClosable(false);

this->setCentralWidget(centralWidget);



QWidget* logTab = new QWidget();    
QTextEdit* logOutput = new QTextEdit();
logOutput->setReadOnly(true);
logOutput->setLineWrapMode(QTextEdit::NoWrap);
QFont* font = new QFont();
font->setFamily("Courier");
font->setPointSize(10);

QVBoxLayout* tabLayout = new QVBoxLayout();
tabLayout->addWidget(logOutput);
logTab->setLayout(tabLayout);

tabWidget->addTab(logTab, tr("Log"));

在 addtab 上,它给出了引发读取访问冲突的异常,调用堆栈如下:

Qt5Widgetsd.dll!QTabWidget::insertTab(int index, QWidget * w, const QIcon & icon, const QString & label) Line 472   C++
Qt5Widgetsd.dll!QTabWidget::insertTab(int index, QWidget * w, const QString & label) Line 454   C++
Qt5Widgetsd.dll!QTabWidget::addTab(QWidget * child, const QString & label) Line 399 C++

标签: c++qt5qtabwidget

解决方案


我是双重声明,所以既有一个类成员变量,又有一个局部变量。啊!!!!!!难怪它不起作用。


推荐阅读