【问题标题】:Detect click and get text of QTableWidget header, how?检测点击并获取 QTableWidget 标题的文本,如何?
【发布时间】:2016-07-14 11:54:04
【问题描述】:

我通过观察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!!" ;
    });
}

【问题讨论】:

    标签: c++ qt qt5 qtablewidget qtablewidgetitem


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

    【讨论】:

      【解决方案2】:

      您可以通过horizontalHeader 方法为您获取QHeaderView QTableWidgetQHeaderView 有信号sectionClicked。您可以使用它来确定标题项的文本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-06
        • 2011-12-20
        • 1970-01-01
        • 1970-01-01
        • 2011-11-21
        • 2017-04-13
        • 1970-01-01
        相关资源
        最近更新 更多