QTableWidget单元格控件居中对齐

时间:2024-03-22 20:30:11

QTableWidget单元格控件居中对齐

由于在表格中的一列需要插入按钮控件,但是运行时按钮是左上对齐的,所以为了美观看了样式方法,基本上是文本居中,背景图片居中类似的设置,对于我的按钮基本原封不动,后面看了一下QTableWidget的函数发现setTextAlignment,也就意味着还是只能文本对齐设置,看上去好像没法整顺,所以只能放大招了,效果妥妥的,先上图QTableWidget单元格控件居中对齐
QTableWidget单元格控件居中对齐

这里稍微动了点小心思,用布局来整的(给你们上图还是上代码呢【也是突然智障的发现代码可以直接复制粘贴上来的不过不是那么高大上的效果,可是方便啊】),哎,两种都上吧
QTableWidget单元格控件居中对齐

上面说的奇怪的东西长这样:
QTableWidget单元格控件居中对齐

好了,最后都是压轴的(各位不介意的可以拿去改改试试,希望能对你们有帮助):
   
    QTableWidgetItem *item = new QTableWidgetItem(strContext);
    item->setTextAlignment(Qt::AlignCenter);
    ui->tableWidget->setItem(row, 0, item);

    QWidget *ptnWidget = new QWidget;
    ptnWidget->setMinimumSize(30, 30);
    ptnWidget->setMaximumSize(30, 30);
    QRect rect(341,row*90, 30, 30);
    ptnWidget->setGeometry(rect);

    QPushButton *ptn = new QPushButton("+", this);
    ptn->setGeometry(15, 15, 15, 15);

    QVBoxLayout *vLayout = new QVBoxLayout();
    vLayout->addWidget(ptn);
    ptnWidget->setLayout(vLayout);

    ui->tableWidget->setCellWidget(row, 1, ptnWidget);