Python 设置QFrame width以匹配QTableWidget
我需要设置一个QFrame来正确匹配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)
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_())