在 Qt 中,要实现双击后才能编辑 QTableWidgetItem
,可以通过设置表格的编辑触发器来实现。以下是具体的步骤和代码示例:
QTableWidget
并设置其编辑触发器为 QAbstractItemView::DoubleClicked
,这样只有在双击单元格时才会进入编辑状态。QTableWidgetItem
子类,并重写 createEditor()
方法来自定义编辑器。QTableWidgetItem
子类设置为表格项的数据。下面是具体的代码示例:
#include <QApplication>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QLineEdit>
class MyTableWidgetItem : public QTableWidgetItem {
public:
MyTableWidgetItem(const QString &text) : QTableWidgetItem(text) {}
protected:
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override {
QLineEdit *editor = new QLineEdit(parent);
return editor;
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QTableWidget tableWidget(4, 2); // 创建一个 4 行 2 列的表格
tableWidget.setEditTriggers(QAbstractItemView::DoubleClicked); // 设置编辑触发器为双击
// 添加自定义的 QTableWidgetItem
MyTableWidgetItem *item = new MyTableWidgetItem("Item 1");
tableWidget.setItem(0, 0, item);
tableWidget.show();
return app.exec();
}
在这个示例中,我们创建了一个 MyTableWidgetItem
类,它继承自 QTableWidgetItem
并重写了 createEditor()
方法来创建一个 QLineEdit
编辑器。然后,我们将这个自定义的 QTableWidgetItem
设置为表格项的数据。通过设置 setEditTriggers(QAbstractItemView::DoubleClicked)
,我们确保只有在双击单元格时才会进入编辑状态。
领取专属 10元无门槛券
手把手带您无忧上云