Python 设置QFrame width以匹配QTableWidget

Python 设置QFrame width以匹配QTableWidget,python,pyside2,Python,Pyside2,我需要设置一个QFrame来正确匹配QTableWidget的宽度。 我曾尝试制定不同的规模政策,但我所做的一切都不起作用,所以我没有什么想法 这是我的代码: from PySide2 import QtWidgets from PySide2.QtWidgets import QTableWidget class MainWindow(QtWidgets.QMainWindow): def __init__(self): super(MainWindow, self)

我需要设置一个QFrame来正确匹配QTableWidget的宽度。 我曾尝试制定不同的规模政策,但我所做的一切都不起作用,所以我没有什么想法

这是我的代码:

from PySide2 import QtWidgets
from PySide2.QtWidgets import QTableWidget

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.showMaximized()
        # Create a table
        table = QTableWidget(1, 3)
        table.setHorizontalHeaderLabels(['Column A', 'Column B', 'Column C'])
        # Create a frame
        myFrame = QtWidgets.QFrame(self)
        myFrame.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Ignored))
        myFrame.setFrameShape(QtWidgets.QFrame.Box)
        # Create frame's layout
        frameLayout = QtWidgets.QVBoxLayout()
        frameLayout.addWidget(table)
        myFrame.setLayout(frameLayout)
        # Create central widget
        centralWidget = QtWidgets.QWidget()
        # Create central widget's layout
        layout = QtWidgets.QHBoxLayout()
        layout.addWidget(myFrame)
        centralWidget.setLayout(layout)
        # Set central widget
        self.setCentralWidget(centralWidget)

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())
注:我知道这里不需要
centralWidget
,但这段代码只是我整个项目的一部分,所以我必须保留它,因为没有它,解决方案可能会有所不同

SizedJustPolicy:SizedJustPolicy

此属性包含描述当视口大小更改时滚动区域大小如何更改的策略

默认策略为QAbstractScrollArea::AdjustIgnored。更改此属性实际上可能会调整滚动区域的大小

table.setSizedJustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContent)#
table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)  # <---
#from PySide2 import QtWidgets
#from PySide2.QtWidgets import QTableWidget
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QTableWidget


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.showMaximized()
        
        # Create a table
        table = QTableWidget(1, 3)
        table.setHorizontalHeaderLabels(['Column A', 'Column B', 'Column C'])
        
        table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)  # <---
        
        # Create a frame
        myFrame = QtWidgets.QFrame(self)
        myFrame.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Ignored))
        myFrame.setFrameShape(QtWidgets.QFrame.Box)
        # Create frame's layout
        frameLayout = QtWidgets.QVBoxLayout()
        frameLayout.addWidget(table)
        myFrame.setLayout(frameLayout)
        # Create central widget
        centralWidget = QtWidgets.QWidget()
        # Create central widget's layout
        layout = QtWidgets.QHBoxLayout()
        layout.addWidget(myFrame)
        centralWidget.setLayout(layout)
        # Set central widget
        self.setCentralWidget(centralWidget)

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())