You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyVista QtInteractor嵌入QFrame无法填满容器的问题求助

解决PyVista QtInteractor无法填满QFrame的问题

问题原因

直接将QtInteractor的父控件设为QFrame时,Qt不会自动让子控件填充整个父容器空间,必须通过布局管理器来约束控件的尺寸和位置。

解决方案

修改代码,确保QFrame拥有布局,并将PyVista的绘图组件添加到布局中,同时去掉布局边距:

from PySide6.QtWidgets import QApplication, QMainWindow, QVBoxLayout
from QT_Designer.Validation import Ui_MainWindow
from pyvistaqt import QtInteractor


class Frm_main(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        # 为QFrame创建布局(如果QtDesigner中未添加)
        layout = QVBoxLayout(self.f_window)
        layout.setContentsMargins(0, 0, 0, 0)  # 移除布局边距,让绘图完全贴合Frame边界

        # 创建QtInteractor并将其交互组件添加到布局
        self.plotter = QtInteractor()
        layout.addWidget(self.plotter.interactor)

        # 设置组件大小策略,确保随Frame缩放
        self.plotter.interactor.setSizePolicy(
            QApplication.QSizePolicy.Expanding,
            QApplication.QSizePolicy.Expanding
        )

补充说明

  1. 如果你已经在QtDesigner中给f_window添加了布局(比如QVBoxLayout),可以跳过手动创建布局的步骤,直接用self.f_window.layout().addWidget(self.plotter.interactor)添加组件。
  2. full_screen是PyVista的全局全屏设置,和填充父容器无关,所以之前的尝试无效。

内容的提问来源于stack exchange,提问作者RaHeSch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:35:17