编辑期间的 QTableWidgetItem text() 属性
QTableWidgetItem text() property during editing
我对QTableWidget或QTableWidgetItem有以下问题: 我想在编辑/键入过程中分析单元格中的文本, 例如,作为对KeyReleaseEvent的反应。
但是,QTableWidgetItem::text(( 属性仅在 单元格编辑完成(焦点已离开单元格(。
我怎样才能克服这种行为?当然,可以分析 键在 KeyReleaseEvent 中,但使用 text(( 属性会容易得多......
一种可能的解决方案是通过委托建立自定义 QLineEdit 作为编辑器:
#include <QtWidgets>
class LineEdit: public QLineEdit{
public:
using QLineEdit::QLineEdit;
protected:
void keyReleaseEvent(QKeyEvent *event) {
QLineEdit::keyPressEvent(event);
qDebug() << text();
}
};
class StyledItemDelegate: public QStyledItemDelegate{
public:
using QStyledItemDelegate::QStyledItemDelegate;
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &) const{
LineEdit *editor = new LineEdit(parent);
return editor;
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTableWidget w(10, 10);
w.setItemDelegate(new StyledItemDelegate(&w));
w.show();
return a.exec();
}
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- C++概念:如何使用'concept'检查模板化结构的属性?
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 通过指向指针数组的指针访问子类的属性
- MSVC是否支持C++11样式的属性而不是__declspec
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 类的C++属性似乎已重新初始化
- Qt Quick-如何仅从c++代码与qml属性交互
- 用概念检查属性的类型
- C++如何将同一类的实例作为属性
- 按多个属性排序
- 主函数参数的属性
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- C++删除未使用的类属性会导致 std::logic_error
- 无法使用 SWIG 在 Python 中实例化C++类(获取属性错误)
- 使用内存地址访问结构的属性值
- 编辑期间的 QTableWidgetItem text() 属性
- 是否有任何方法可用于更改 MFC(C++) 中 CListBox 的属性"right align text"?
- 无法在列表迭代器中获取sf::Text属性
- 在向富文本框写入数据时获取字符代码而不是字母text属性