QT开发中文网

QTableWidget 里的按钮被点击后,能否直到当前点击的是哪一行哪一列?

当QTableWidget中的按钮被点击时,可以通过连接按钮的信号与槽函数,将所点击按钮的位置信息传递给槽函数。

首先,为每个按钮设置一个唯一标识符,以便在槽函数中区分不同的按钮。然后,在创建按钮时连接其clicked()信号到一个自定义的槽函数上,并将行和列信息作为参数传递给该槽函数。

下面是一个示例代码片段,演示了如何获取所点击按钮的行和列信息:

// 创建 QTableWidget
QTableWidget* tableWidget = new QTableWidget(parent);

// 设置表格内容...

// 遍历表格并为每个单元格添加一个按钮
for (int row = 0; row < numRows; ++row) {
    for (int column = 0; column < numColumns; ++column) {
        // 创建按钮
        QPushButton* button = new QPushButton("Button", tableWidget);

        // 设置按钮唯一标识符
        button->setProperty("row", row);
        button->setProperty("column", column);

        // 连接clicked()信号到自定义的槽函数上,并传递行列信息
        connect(button, &QPushButton::clicked, this, &YourClass::handleButtonClick);
        
        // 将按钮添加到单元格中
        tableWidget->setCellWidget(row, column, button);
    }
}

在自定义的槽函数handleButtonClick()中,可以通过调用sender()来获取发送信号(即被点击)的对象指针。然后使用按钮的property()函数获取其行和列信息。

void YourClass::handleButtonClick() {
    QPushButton* button = qobject_cast<QPushButton*>(sender());
    if (button) {
        int row = button->property("row").toInt();
        int column = button->property("column").toInt();
        
        // 在这里进行处理当前点击的行和列
        // ...
    }
}

通过上述方法,您可以在按钮被点击时获得所在的行和列信息,并对其进行相应操作。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=8542

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?