QT开发中文网

void MyWidget::onButtonClicked() { // 获取发送信号的QPushButton对象 QPushButton *button = qobject_cast(sender()); if(button) { // 获取QPushButton所在的QWidget对象 QWidget *widget = button->parentWidget(); if(widget && qobject_cast

这是因为在获取QWidget所在的单元格行和列时,使用了QTableWidget::row()函数,该函数的参数类型必须为QTableWidgetItem *。而当前使用的参数类型为QWidget *,需要将其转换为QTableWidgetItem *类型。

修改代码如下:

void MyWidget::onButtonClicked() {

// 获取发送信号的QPushButton对象
QPushButton *button = qobject_cast<QPushButton *>(sender());

if(button)
{
    // 获取QPushButton所在的QWidget对象
    QWidget *widget = button->parentWidget();

    if(widget && qobject_cast<QTableWidget *>(widget->parentWidget()))
    {
        // 获取QWidget所在的单元格行和列
        QTableWidget *tableWidget = qobject_cast<QTableWidget *>(widget->parentWidget());
        int row = tableWidget->row(tableWidget->itemAt(widget->pos()));  // 将QWidget转换为QTableWidgetItem
        int column = tableWidget->column(tableWidget->itemAt(widget->pos()));

        // TODO:处理单元格被点击的操作
    }
}

}

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?