PyGObject无法识别HdyWindow类型,加载Glade UI文件报对象无效错误
报错原因
GTK Builder无法识别HdyWindow类型,由Libhandy库未初始化、UI文件配置与代码依赖不匹配两个问题共同导致。
修复步骤
- 初始化Libhandy库
修改MainWindow.py,在导入Handy库后新增初始化语句,必须放在UI文件加载之前:
from gi.repository import Handy Handy.init() # 新增此行
- 修正
Example.ui配置
- 调整libhandy依赖版本,匹配代码里
gi.require_version('Handy', '1')的声明:
原代码:
<requires lib="libhandy" version="0.0"/>
修改为:
<requires lib="libhandy" version="1"/>
- 给
HdyWindow对象添加id属性,匹配代码里self.builder.get_object("window")的调用:
原代码:
<object class="HdyWindow">
修改为:
<object class="HdyWindow" id="window">
- 可选环境检查
如果修改后仍报错,确认系统已安装libhandy1运行库,Fedora系统可执行命令安装:sudo dnf install libhandy1
修改完成后重新运行应用即可正常启动。
内容的提问来源于stack exchange,提问作者Alperen İsa
相关产品推荐
相关产品推荐

