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

PySide6程序仅显示空白白屏,无法显示‘Hello’文本求助

问题解决:PySide6程序白屏不显示文本

问题原因

  1. 创建的View实例未赋值给变量,Python会将其当作临时对象回收,导致内部视图组件无法维持正常状态。
  2. 类设计逻辑有误:QGraphicsScene是数据容器,QGraphicsView才是负责显示的组件,继承QGraphicsScene并在内部创建视图的写法不符合Qt使用规范。
  3. 场景添加文本后,默认场景范围可能未包含文本区域,视图无法正确渲染内容。

修正后的代码

方案一:继承QGraphicsView实现

from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *

class MainView(QGraphicsView):
    def __init__(self):
        super().__init__()
        # 创建场景对象
        self.scene = QGraphicsScene()
        # 向场景添加文本
        self.scene.addText("Hello!")
        # 将视图与场景关联
        self.setScene(self.scene)
        # 设置视图初始大小(可选)
        self.setFixedSize(300, 200)

app = QApplication([])
# 保留视图实例引用,避免被回收
view = MainView()
view.show()
app.exec()

方案二:直接创建场景和视图(更简洁)

from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *

app = QApplication([])

# 创建场景并添加文本
scene = QGraphicsScene()
scene.addText("Hello!")
# 创建视图并关联场景
view = QGraphicsView(scene)
view.setFixedSize(300, 200)
view.show()

app.exec()

额外说明

如果需要手动适配场景范围,确保所有元素都能显示,可在添加文本后调用:

scene.setSceneRect(scene.itemsBoundingRect())

内容的提问来源于stack exchange,提问作者All In One Coder304751

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:25:15