用的是pyside2库
时间: 2024-11-07 20:13:29 浏览: 3
在PySide2库中,处理GUI界面的Qt框架的Python绑定,如果想要在QTableWidget这样的表格控件中使内部的Widget(比如QPushButton)实现水平和垂直居中,你可以使用`setAlignment()`方法结合`Qt.AlignmentFlag`。首先导入所需的模块:
```python
from PySide2.QtWidgets import QApplication, QTableWidget, QPushButton, QTableWidgetItem, Qt
```
然后,创建一个表格和按钮,设置它们的位置策略:
```python
app = QApplication([])
# 创建一个QTableWidget
table = QTableWidget()
# 创建一个QPushButton
button = QPushButton("My Button")
# 设置button为内部单元格的Widget
item = QTableWidgetItem()
item.setSizeHint(button.sizeHint()) # 确保单元格大小适应按钮
table.setItem(0, 0, item)
table.setCellWidget(0, 0, button)
# 定义一个函数用于设置居中
def center_button():
table_item = table.itemAt(0, 0)
if table_item is not None and isinstance(table_item.widget(), QPushButton):
button.setAlignment(Qt.AlignCenter)
# 当单元格大小改变时,更新按钮位置
table.cellChanged.connect(center_button)
# 初始设置按钮居中
center_button()
# 显示窗口
table.show()
app.exec_()
```
在这个例子中,当表格的单元格大小改变时,会自动调用`center_button`函数,使得内部的QPushButton居中显示。
阅读全文