如何在 PyQt5 中设置 QTableWidget 的单元格样式?
Posted
技术标签:
【中文标题】如何在 PyQt5 中设置 QTableWidget 的单元格样式?【英文标题】:How can I style the cells of a QTableWidget in PyQt5? 【发布时间】: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 非常感谢,这对我很有帮助,让我能够解决问题!我将在回答我自己的问题时总结解决方案。 【参考方案1】:我自己回答这个问题。我在上面@musicamante 的评论的帮助下找到了解决方案。
将边距设置为 0 成功了:
view.setStyleSheet("QTableWidget::item border: 0px; padding: 5px;")
现在单元格的内边距为 5px。
【讨论】:
以上是关于如何在 PyQt5 中设置 QTableWidget 的单元格样式?的主要内容,如果未能解决你的问题,请参考以下文章