c++ - 将 QPushButton 添加到 QTableWidget 中的 QTableWidgetItem 中,如何使其成为 Qt::AlignHCenter

标签 c++ qt qtablewidget qtablewidgetitem

for(int i=0; i<page.size(); i++){
    User user= Poco::AnyCast<User>(*it);
    ui.table->setItem(i,0,new QTableWidgetItem(user.userName)); 
    ui.table->setItem(i,1,new QTableWidgetItem(user.sex));
    ui.table->setItem(i,2,new QTableWidgetItem(user.age));

    QPushButton* btn_edit = new QPushButton();
    btn_edit = new QPushButton();
    btn_edit->setText("Edit");
    ui.table->setCellWidget(i,3,(QWidget*)btn_edit);

    ++it;
}

我使用函数 setCellWidget() 将 QPushButton 添加到单元格中, 我知道,如果它是 QTableWidgetItem,我可以使用:

ui.table->item(0,3)->setTextAlignment(QT::AlignHCenter)

但它是一个Widget,

QTableWidgetItem item = ui.table->item(0,3); 

该项目为空。

我可以通过使用获取单元格

ui.table->cellWidget(0,3).

如何使按钮在单元格中居中?

最佳答案

试试这个:

QWidget* pWidget = new QWidget();
QPushButton* btn_edit = new QPushButton();
btn_edit->setText("Edit");
QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
pLayout->addWidget(btn_edit);
pLayout->setAlignment(Qt::AlignCenter);
pLayout->setContentsMargins(0, 0, 0, 0);
pWidget->setLayout(pLayout);
ui.table->setCellWidget(i, 3, pWidget);

关于c++ - 将 QPushButton 添加到 QTableWidget 中的 QTableWidgetItem 中,如何使其成为 Qt::AlignHCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909322/

相关文章:

c++ - 有人能告诉我为什么我会收到这个错误,即使参数是正确的吗?

c++ - 如何获取 vector::reserve() 分配的缓冲区地址?

c++ - 将十六进制转换为 double 转换为十六进制?

c++ - QTableWidget - 组合框委托(delegate)我如何允许每个单元格有不同的选项

c++ - 在切换到 64 位整数之前,为什么使用 INT_MAX 而不是 UINT_MAX?

c++ - 计时器不准确的 Cpp 重新排序示例

c++ - QJSEngine - 暴露类并抛出错误

c++ - 在 Qt 中解析 XML 文件

c++ - 如何将 CSV 文件导入 QTableWidget

pyqt - 在pyqt中隐藏qtablewidget中选定单元格的边框?