QT开发中文网

QTableWidget 单元中控件居中显示

您好,要在 QTableWidget 单元格中居中显示控件,可以通过以下步骤实现:

  1. 创建一个自定义的单元格部件(QWidget),并将需要居中显示的控件添加到该部件上;
  2. 在 QTableWidget 的 setCellWidget() 方法中,将自定义部件作为参数传递给该方法;
  3. 重写自定义部件的 paintEvent() 方法,在其中使用 QPainter 将控件绘制在居中位置。

以下是示例代码:

class CenteredWidget(QWidget):
    def __init__(self, widget, parent=None):
        super().__init__(parent)
        layout = QHBoxLayout(self)
        layout.addWidget(widget)
        layout.setAlignment(Qt.AlignCenter)

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.translate((self.width() - self.widget().width()) / 2,
                          (self.height() - self.widget().height()) / 2)
        self.widget().render(painter)

table = QTableWidget()
widget = QPushButton("Click me!")
centered_widget = CenteredWidget(widget)
table.setCellWidget(0, 0, centered_widget)

在上面的代码中,我们创建了一个名为 CenteredWidget 的自定义部件,它接受一个需要居中显示的控件作为参数。我们使用 QHBoxLayout 将该控件添加到布局中,并将布局水平和垂直方向都居中对齐。在 paintEvent() 方法中,我们使用 QPainter 将控件绘制在居中位置。

最后,在主程序中,我们创建了一个 QPushButton 控件,并将其添加到一个 CenteredWidget 中。然后,我们将该自定义部件作为参数传递给 QTableWidget 的 setCellWidget() 方法,以在单元格中居中显示控件。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1735

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?