无法在 QVBoxLayout 中对齐顶部 QTableWidget
Cannot align top QTableWidget in QVBoxLayout
我想在顶部的 QVBoxLayout 中同时对齐 QLabel 和 QTableWidget。
我可以使用 setAlignment 方法将顶部的 QLabel 与 QVBoxLayout 对齐。当我将 QTableWidget 添加到 QVBoxLayout 时,出现了问题。
我的代码:
class AWidget(QWidget):
def __init__(self):
super().__init__()
self.aLabel = QLabel('Table')
self.aTable = QTableWidget(6, 6)
self.aTable.setMaximumHeight(200)
self.aLayout = QVBoxLayout()
self.aLayout.addWidget(self.aLabel)
self.aLayout.addWidget(self.aTable)
self.aLayout.setAlignment(Qt.AlignTop)
self.setLayout(self.aLayout)
app = QApplication([])
aWidget = AWidget()
aWidget.resize(640, 480)
aWidget.show()
sys.exit(app.exec_())
QLabel 必须位于主小部件之上,然后是其下方的 QTableWidget。然而,QLabel 和 QTableWidget 都保持在主窗口部件的中心,在它们之间留有很多空间。
您将 table 的最大高度固定为 200px,布局通过占据尽可能多的 space 来处理它。
你想保持这个高度,你可以在布局的末尾插入一个stretch:
class AWidget(QWidget):
def __init__(self):
super().__init__()
self.aLabel = QLabel('Table')
self.aTable = QTableWidget(6, 6)
self.aTable.setMaximumHeight(200)
self.aLayout = QVBoxLayout()
self.aLayout.setAlignment(Qt.AlignTop)
self.aLayout.addWidget(self.aLabel)
self.aLayout.addWidget(self.aTable)
self.aLayout.addStretch() # Adding a stretch to occupy the empty space
self.setLayout(self.aLayout)
我想在顶部的 QVBoxLayout 中同时对齐 QLabel 和 QTableWidget。
我可以使用 setAlignment 方法将顶部的 QLabel 与 QVBoxLayout 对齐。当我将 QTableWidget 添加到 QVBoxLayout 时,出现了问题。
我的代码:
class AWidget(QWidget):
def __init__(self):
super().__init__()
self.aLabel = QLabel('Table')
self.aTable = QTableWidget(6, 6)
self.aTable.setMaximumHeight(200)
self.aLayout = QVBoxLayout()
self.aLayout.addWidget(self.aLabel)
self.aLayout.addWidget(self.aTable)
self.aLayout.setAlignment(Qt.AlignTop)
self.setLayout(self.aLayout)
app = QApplication([])
aWidget = AWidget()
aWidget.resize(640, 480)
aWidget.show()
sys.exit(app.exec_())
QLabel 必须位于主小部件之上,然后是其下方的 QTableWidget。然而,QLabel 和 QTableWidget 都保持在主窗口部件的中心,在它们之间留有很多空间。
您将 table 的最大高度固定为 200px,布局通过占据尽可能多的 space 来处理它。
你想保持这个高度,你可以在布局的末尾插入一个stretch:
class AWidget(QWidget):
def __init__(self):
super().__init__()
self.aLabel = QLabel('Table')
self.aTable = QTableWidget(6, 6)
self.aTable.setMaximumHeight(200)
self.aLayout = QVBoxLayout()
self.aLayout.setAlignment(Qt.AlignTop)
self.aLayout.addWidget(self.aLabel)
self.aLayout.addWidget(self.aTable)
self.aLayout.addStretch() # Adding a stretch to occupy the empty space
self.setLayout(self.aLayout)