【问题标题】:How can I style the cells of a QTableWidget in PyQt5?如何在 PyQt5 中设置 QTableWidget 的单元格样式?
【发布时间】:2021-04-25 22:39:42
【问题描述】:

我是 Qt 和 PyQt 的新手,想知道如何设置 QTableWidget 的单元格样式。例如,我想添加一些 etxra 填充。我尝试像下面的代码一样设置样式表,但它没有任何效果。我也搜索了互联网,但找不到解决方案。

我使用 PyQT5(Arch Linux 上的 python-pyqt5 5.15.4-1)。

这是我的代码:

import sys

from PyQt5.QtWidgets import QApplication,QMainWindow, QTableWidget, QTableWidgetItem


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Table Test')
        table = QTableWidget(self)
        table.setColumnCount(4)
        table.setRowCount(3)
        for j in range(table.rowCount()):
            for k in range(table.columnCount()):
                table.setItem(j, k, QTableWidgetItem("{}{}".format(j, k)))
        self._centralWidget = table
        self.setCentralWidget(self._centralWidget)
        self.resize(500, 200)


def main():
    app = QApplication(sys.argv)
    view = MainWindow()
    view.setStyleSheet("QTableWidget::item {padding: 5px}")
    view.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

有人可以帮忙吗?

【问题讨论】:

  • 许多类继承自更多“通用”类:QTableWidget 继承自QTableView,它是它的“便利”版本(它提供了自己的私有模型)。谷歌搜索“qtableview padding”首先给出这个结果:How to set the padding of QTableView cells through CSS?(你需要设置一个空边框)。如果您需要更多自定义,则需要更精确,因为它取决于许多方面,并非所有内容都可以通过样式表进行自定义(因为它们只是“实现”了 CSS 概念和语法,但不提供所有 CSS 功能。跨度>
  • @musicamante 非常感谢,这对我很有帮助,让我能够解决问题!我将在回答我自己的问题时总结解决方案。

标签: python qt pyqt pyqt5


【解决方案1】:

我自己回答这个问题。我在上面@musicamante 的评论的帮助下找到了解决方案。

将边距设置为 0 成功了:

view.setStyleSheet("QTableWidget::item {border: 0px; padding: 5px;}")

现在单元格的内边距为 5px。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2017-02-01
    • 2012-05-22
    • 1970-01-01
    • 2022-11-17
    • 2020-06-28
    • 1970-01-01
    相关资源
    最近更新 更多