【发布时间】:2021-02-06 16:08:20
【问题描述】:
以下 PyQt 程序生成一个包含 QTableView 的窗口,其底部和右侧(但不是顶部和左侧)有一个边距空间 - 即使主窗口被告知要调整其内容大小:
我期待看到:
如果我从原始位置增加窗口的大小,我会看到:
该区域的目的是什么?可以消除吗?如果有,怎么做?
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QApplication, QMainWindow, QTableView
class TableModel(QtCore.QAbstractTableModel):
def __init__(self):
super().__init__()
def data(self, index, role=None):
if role == Qt.DisplayRole:
return 42
def rowCount(self, index):
return 3
def columnCount(self, index):
return 4
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.table = QTableView()
self.model = TableModel()
self.table.setModel(self.model)
self.table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
self.setCentralWidget(self.table)
app = QApplication(sys.argv)
w = MainWindow()
w.show()
app.exec_()
【问题讨论】:
-
会不会是因为没有更多的行而这是默认的列宽?如果调整窗口大小会发生什么?
-
谢谢,但我不确定我是否理解您的评论。我已经用我期望看到的(没有边距)更新了这个问题,以及你的问题的答案显示了如果我增加窗口大小我会看到什么:边距增加。
标签: python pyqt5 resize qtableview