首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++,Qt:双击后才能编辑qtablewidgetitem

在 Qt 中,要实现双击后才能编辑 QTableWidgetItem,可以通过设置表格的编辑触发器来实现。以下是具体的步骤和代码示例:

  1. 创建一个 QTableWidget 并设置其编辑触发器为 QAbstractItemView::DoubleClicked,这样只有在双击单元格时才会进入编辑状态。
  2. 创建自定义的 QTableWidgetItem 子类,并重写 createEditor() 方法来自定义编辑器。
  3. 将自定义的 QTableWidgetItem 子类设置为表格项的数据。

下面是具体的代码示例:

代码语言:javascript
复制
#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),我们确保只有在双击单元格时才会进入编辑状态。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券