python - 删除滚动条以显示完整表格

标签 python pyqt pyside qtablewidget

我有一个动态添加 QTableWidgets 的 ScrollView 。但是,QTables 本身也有滚动条,因此不会显示完整的表格。有没有办法禁用滚动条,以便表格始终完整显示?

enter image description here

编辑:我添加了

    self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
    self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

按照建议。滚动条确实消失了,但它仍然只显示部分表格(我仍然可以通过悬停在表格上并使用鼠标滚轮来滚动)。 Widget 的代码如下

from PySide.QtGui import *
from PySide.QtCore import *

class MdTable(QTableWidget):
    def __init__(self, data, depth, *args):

        QTableWidget.__init__(self, *args)
        self.hheaders = ["c1", "c2", "c3", "c4"]
        self.depth = depth
        self.bids = data
        self.setData()

    def setData(self):

        self.setRowCount(self.depth)
        self.setColumnCount(5)

        for i in xrange(self.depth):
            if len(self.data) > i:
                d1= QTableWidgetItem(str(self.data[i][0]))
                d2= QTableWidgetItem(str(self.data[i][1]))
                self.setItem(i, 1, d1)
                self.setItem(i, 2, d2)

        self.setHorizontalHeaderLabels(self.hheaders)
        self.verticalHeader().setVisible(False)
        self.resizeRowsToContents()
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

最佳答案

如果你只想删除你必须使用的滚动条:

{QtableWidget}.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
{QtableWidget}.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)

如果你想显示扩展的QTableWidget,把这个添加到setData()方法的末尾:

self.setMaximumSize(self.getQTableWidgetSize())
self.setMinimumSize(self.getQTableWidgetSize())

并像这样定义getQTableWidgetSize(self):

def getQTableWidgetSize(self):
    w = self.verticalHeader().width() + 4  # +4 seems to be needed
    for i in range(self.columnCount()):
        w += self.columnWidth(i)  # seems to include gridline (on my machine)
    h = self.horizontalHeader().height() + 4
    for i in range(self.rowCount()):
        h += self.rowHeight(i)
    return QtCore.QSize(w, h)

enter image description here

注意: getQTableWidgetSize函数是将C++中的代码转换为以下帖子的python:How to determine the correct size of a QTableWidget?

关于python - 删除滚动条以显示完整表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41542934/

相关文章:

python - 如何使用strided_slice选择tensorflow中的所有元素?

python - Python 的 QT Designer 中的 Unicode 字符?

python - 如何以编程方式在 Qt 中制作水平线

python 2.6.1 : Checking if imports exist

python - python中的默认舍入模式,以及如何将其指定为另一个舍入模式?

python - 如何在 Python 数据框中查找不共享公共(public)日期(或索引)的行

python - 如何通过pyqt5按钮启动多个函数实例?

c++ - 无论文件如何,QFileIconProvider 都返回相同的图标

python - PyQt/PySide 中是否有默认图标?

python - 对象超出范围并在 PySide/PyQt 中被垃圾收集