QTableWidget中添加QPushButton按钮控件

在QTableWidget中可以添加多种Qt的控件,本文只以QPushButton为例进行说明:

// 创建QPushButton控件
QPushButton *pBtn = new QPushButton();  

// 绑定信号
connect(pBtn, SIGNAL(clicked()), this, SLOT(OnBtnClicked()));  

// 在QTableWidget中添加控件
tableWidget->setCellWidget(0,0,pBtn); 

// 绑定的响应函数
void OnBtnClicked(void)  
{  
    QPushButton *senderObj=qobject_cast<QPushButton*>(sender());  
    if(senderObj == nullptr)  
    {  
        return;  
    }  
    QModelIndex idx =tableWidget->indexAt(QPoint(senderObj->frameGeometry().x(),senderObj->frameGeometry().y()));  
    int row=idx.row();  
    // 其他响应信息......
}

获取列表中的按钮控件:

QWidget *widget = (QWidget *)ui->tableWidget->cellWidget(row, column);  
QPushButton *btn = (QPushButton *)widget->children().at(1);

 

想让控件居中显示,参考:https://www.365codes.com/494.html

原创文章,作者:365开发网,如若转载,请注明出处:https://www.365codes.com/531.html