我想在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