我想在QScrollArea(只有一个部件)内放置QtableWidget,以便能够垂直和水平滚动(我有理由不使用Qtablewidget中的滚动条)。但是,即使tableWidget无法放入窗口中,也不会出现滚动条,所以我设置了QtCore.Qt.ScrollBarAlwaysOn
,现在它们在那里,但它们是灰色的,仍然不能滚动。QScrollArea不会滚动
这里是我的代码:
class Table(QtGui.QDialog):
def __init__(self, parent=None):
super(Table, self).__init__(parent)
layout = QtGui.QGridLayout()
tableWidget = QtGui.QTableWidget()
#.... set up and populate tableWidget here 1000rows-10col ....
myScrollArea = QtGui.QScrollArea()
myScrollArea.setWidgetResizable(True)
myScrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
myScrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
myScrollArea.setWidget(tableWidget)
layout.addWidget(myScrollArea)
self.setLayout(layout)
self.setMinimumSize(1000, 700)
我是初学者与PyQt的,我真的不明白的布局和容器,所以我不能找出我做错了。请指点正确的方向,帮助将不胜感激。
谢谢你的回答。我也为你的桌子做过ScrollBarAlwaysOff。当我运行你的代码时,我可以看到QScrollArea的滚动条和5行,但我只能向下滚动才能看到另一行。 我使用PyQt4和Python 2.6。 你能用你的代码向下滚动到所有100行吗? 请帮我,这让我头疼一阵子 – Aleksandar
哦,我忘记提到我需要在填充表之后使用'self.table.resizeRowsToContents()'和'self.table.resizeColumnsToContents()' – Aleksandar