本文主要是介绍[Qt] 点击QTableWidget item项后键盘输入导致崩溃,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
复现场景
Qt版本 5.9.8
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->tableWidget->setRowCount(1);ui->tableWidget->setColumnCount(2);QLineEdit *lineEdit = new QLineEdit(this);ui->tableWidget->setCellWidget(0, 1, lineEdit);
}Widget::~Widget()
{delete ui;
}
选中第一个item,在中文输入法下随便点击一个字母键,程序崩溃,在debug模式下显示的是函数调用栈溢出。如图
解决方案
这个bug实际上也有人提交到了Qt官方收集bug的地方 QTableWidgetItem cause stack overflow。但是好像没有引起关注 🤣。所有推荐 将原本使用 setCellWidget 的地方使用代理来实现效果 或者 QtableWidget的每一个项都使用 setCellWidget。
这篇关于[Qt] 点击QTableWidget item项后键盘输入导致崩溃的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!