5

我尝试了 CSS 代码:

QTableView QHeaderView::section {
    text-align: center;
 }

它并没有帮助我。

PS 我在使用 Qt 的 WinCC OA 中编写 SCADA 系统,在那里您可以仅使用 CSS 更改组件的外观

4

2 回答 2

3

如源代码所示QHeaderView::paintSection

QVariant textAlignment = d->model->headerData(logicalIndex, d->orientation,
                                              Qt::TextAlignmentRole);
opt.rect = rect;
opt.section = logicalIndex;
opt.state |= state;
opt.textAlignment = Qt::Alignment(textAlignment.isValid()
                                  ? Qt::Alignment(textAlignment.toInt())
                                  : d->defaultAlignment);

QHeaderView不使用样式表来定义文本对齐方式,仅使用defaultAlignment来自标头模型 ( Qt::TextAlignmentRole) 的值或数据。

现在,如果您的默认对齐方式是Qt::AlignLeftQt::AlignRight,您可以使用部分填充自动居中:

QTableView QHeaderView::section {
    padding-left: auto;
    padding-right: auto;
}

反之则不然:如果默认对齐方式是居中,其他演算会影响填充的使用方式,并且不能用于自动左对齐或右对齐文本。

于 2018-07-25T08:39:56.447 回答
3

我找到了解决方案之一:

QHeaderView {
    qproperty-defaultAlignment: AlignHCenter AlignVCenter;
}

虽然它只在 WinCC OA 中部分起作用。

于 2018-07-25T10:34:24.470 回答