繁体   English   中英

检测点击并获取 QTableWidget 标题的文本,如何?

[英]Detect click and get text of QTableWidget header, how?

我看到如何通过观察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;
});

您可以使用方法horizo​​ntalHeader为您的QTableWidget获取QHeaderView QHeaderView有信号sectionClicked 您可以使用它来确定标题项的文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM