qt - 如何仅使用 CSS 在 Qt 中的 QTableView 的标题中对齐文本?

标签 qt qtableview qtstylesheets qheaderview

我尝试了 CSS 代码:

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

它没有帮助我。

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

最佳答案

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;
}

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

关于qt - 如何仅使用 CSS 在 Qt 中的 QTableView 的标题中对齐文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51498888/

相关文章:

c++ - QDialog 派生窗体立即关闭

python - QTableView 中的换行符

c++ - QTableView外部拖拽

qt - 是否可以在 Qt 样式表中指定不仅仅是 "regular"和 "bold"版本的字体?

qt - Qt 中的样式表、隐藏的小部件和大小

linux - Qmake不包含qt的库路径

c++ - 如何在 Qt Designer 中为自定义插件的 QString 属性删除 "translatable"复选框?

c++ - 如何删除 QStandardItemModel 中的垂直标题?

c++ - 是否可以根据其位置更改 QSlider handle 的颜色?

c++ - 如何在 QT Creator 中关闭 g++ 中的 unicode 标志?