c++ - 检测单击并获取 QTableWidget 标题的文本,如何?

标签 c++ qt qt5 qtablewidget qtablewidgetitem

我了解如何通过观察 cellClicked(int row, int column) 信号(下面的代码)来检测 QTableWidget 单元格中的点击。

我想对水平标题的单元格执行相同的操作,并获取单击的标题单元格的文本。我该怎么做?

// mainwindow.h
class MainWindow : public QMainWindow {
    Q_OBJECT
    QWidget widget;
    QVBoxLayout vLayout {&widget};
    QStringList headers {"asdca", "asdcad", "asdcadca"};
    QTableWidget table {5, headers.size()};
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow() {}
};

// mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
    setCentralWidget(&widget);
    vLayout.addWidget(&table);
    table.setHorizontalHeaderLabels(headers);
    connect(&table, &QTableWidget::clicked, []{
       qDebug() << "click!!" ;
    });
}

最佳答案

auto header = table->horizontalHeader();
connect(header, &QHeaderView::sectionClicked, [this](int logicalIndex){
    QString text = table.horizontalHeaderItem(logicalIndex)->text();
   qDebug() << logicalIndex << text;
});

关于c++ - 检测单击并获取 QTableWidget 标题的文本,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373524/

相关文章:

c++ - 无法调用 InitializeGL 和 paintGL 之外的 OpenGL 相关函数

c++ - 在 Qt 中将 int 转换为 QByteArray

qt - 使用特定 QT 版本运行二进制文件 - 不能混合不兼容的 Qt 库

c++ - 从表单的小部件收集值

C++ MFC 调试断言失败!在静态 MFC 中

为非虚拟方法指定的c++初始化

c++ - 类函数找不到类定义的变量

c++ - 以编程方式为所有用户设置注册表软件策略 key

c++ - QT Text.WordWrap 在 ColumnLayout 中不起作用

c++ - 来自数组的 QAudioInput