Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在QTableWidget中设置垂直网格线?_Python_Python 2.7_Maya_Pyside2_Qtablewidget - Fatal编程技术网

Python 如何在QTableWidget中设置垂直网格线?

Python 如何在QTableWidget中设置垂直网格线?,python,python-2.7,maya,pyside2,qtablewidget,Python,Python 2.7,Maya,Pyside2,Qtablewidget,现在我正在使用self.setShowGrid(False),但它完全删除了网格线。所以不是全部就是什么都没有。但我只想要垂直的网格线,而不是像图中那样的水平网格线 这可能吗?如何做到这一点 一种可能的解决方案是使用代理绘制这些线条: from PyQt5 import QtCore, QtGui, QtWidgets class VerticalLineDelegate(QtWidgets.QStyledItemDelegate): def paint(self, painter,

现在我正在使用self.setShowGrid(False),但它完全删除了网格线。所以不是全部就是什么都没有。但我只想要垂直的网格线,而不是像图中那样的水平网格线

这可能吗?如何做到这一点


一种可能的解决方案是使用代理绘制这些线条:

from PyQt5 import QtCore, QtGui, QtWidgets


class VerticalLineDelegate(QtWidgets.QStyledItemDelegate):
    def paint(self, painter, option, index):
        super(VerticalLineDelegate, self).paint(painter, option, index)
        line = QtCore.QLine(option.rect.topRight(), option.rect.bottomRight())
        color = option.palette.color(QtGui.QPalette.Mid)
        painter.save()
        painter.setPen(QtGui.QPen(color))
        painter.drawLine(line)
        painter.restore()

if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QTableWidget(10, 4)
    delegate = VerticalLineDelegate(w)
    w.setItemDelegate(delegate)
    w.setShowGrid(False)
    w.resize(640, 480)
    w.show()
    sys.exit(app.exec_())

谢谢,我刚试过这个,但是我丢失了所有的项目,但是有一个滚动条,当我滚动时,滚动条滞后,也没有网格线。为什么会这样?@JoanVenge我看不出这个问题,如果没有你所指出的证据(也许是你所观察到的问题的图像),我是不可能帮助你的。我的代码在不修改底层绘制的情况下添加绘制线条。好的,让我尝试隔离问题。好的,我按原样运行您的代码,但似乎分配的默认样式表似乎会导致问题,但下面是我使用您的方法设置项委托之前和之后的情况:@joannevenge try更改为
color=QtGui.QColor(“红色”)
然后告诉我你得到了什么。我还在等MRE1。它是默认安装的。2.对3.我试图运行它,但它使程序崩溃了。我会再试一次。4.有一个默认的样式表应用于主机应用程序,我会尝试获得它,并张贴在这里。QSTYLESHEETSYLESHEET在这里:1600>代码行。我应该把它贴在OP上吗?我现在就试试你说的。dot org/399QJK8NYJWBUXJQ56FMZRA实际上这是另一个名为houdini的应用程序,但它就像maya一样,我现在将尝试您的下一个建议。是的,我也使用相同的代码得到此错误:文件“”,第6行,在paint TypeError:super()中至少包含一个参数(给定0),我现在将更改为左上角。