我正在開發一個相當簡單的PyQt程序,它基本上只是一個QTableWidget
項目。我的目標是根據父母的大小QTableWidget
自動調整項目的寬度和高度。例如,如果我調小窗口大小,項目的寬度和高度應該減小,但應保持相同數量的項目,並且項目仍應完全填充父項QTableWidget
。如您所見,我目前使用setColumnWidth
和setRowHeight
來手動設置寬度和高度。PyQt4 QTableWidget:設置行寬和列高度以填充父窗口小部件
我已經嘗試了以下堆棧溢出問題的建議,以及其他許多問題和網站,其中沒有一個做我正在嘗試做的事情。
1. How to make qtablewidgets columns assume the maximum space
2. pyqt how to maximize the column width in a tableview
這裏是我目前使用的代碼:
from PyQt4 import QtGui, QtCore
import PyQt4.Qt
class Window(QtGui.QWidget):
def __init__(self, rows, columns):
super(Window, self).__init__()
self.setWindowState(QtCore.Qt.WindowMaximized)
self.table = QtGui.QTableWidget(rows, columns, self)
self.table.verticalHeader().setVisible(False)
self.table.horizontalHeader().setVisible(False)
# this is what I am currently using to set the row and column size
for x in range(columns):
self.table.setColumnWidth(x, 13)
for x in range(rows):
self.table.setRowHeight(x, 13)
for row in range(rows):
for column in range(columns):
item = QtGui.QTableWidgetItem()
self.table.setItem(row, column, item)
layout = QtGui.QGridLayout(self)
layout.addWidget(self.table, 0, 0, 1, 6)
self.show()
def main():
import sys
app = QtGui.QApplication(sys.argv)
window = Window(54, 96)
sys.exit(app.exec_())
if __name__ == "__main__":
main()
我appoligize對這一問題的長度,但我想讓我的問題很清楚。預先感謝您的幫助!
我累了你的代碼,它完全填滿了表。但它並不在窗口的範圍內。有沒有一種方法可以讓它在沒有超出窗口的情況下填滿窗戶? – MarkyPython
「超越窗口」是什麼意思?你可以張貼截圖嗎? –
[這裏](http://i.stack.imgur.com/DTGAn.png)是截圖。我有更多的列和行比在屏幕上顯示的更多。 – MarkyPython