折翅的飞蛾 2023-04-15 11:55 采纳率: 100%
浏览 6
已结题

PySide6启动时事件对象和窗口对象是怎么关联的


if __name__ == "__main__":
    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine()
    qml_file = Path(__file__).resolve().parent / "main.qml"
    engine.load(qml_file)
    if not engine.rootObjects():
        sys.exit(-1)
    sys.exit(app.exec())

以上是使用QtCeate生成的实例代码,app是事件循环,engine是窗体,根据代码逻辑看对象app和engine并没有任何关联,可程序运行时,两个是关联在一起的,感觉应该是省略关联的步骤,省略什么步骤?为什么省略?又在哪里关联起来的呢?

  • 写回答

2条回答 默认 最新

  • 社区专家-Monster-XH 2023-04-15 12:05
    关注

    基于Monster 组和GPT的调写:

    • 在PySide6中,QGuiApplication是Qt的GUI事件处理循环的主要入口点,它管理事件队列并将它们分派给各个窗口。QQmlApplicationEngine是Qt Quick应用程序引擎,它是用于加载和运行QML文件的组件,是Qt Quick应用程序的核心。
    • 在你的代码中,app和engine对象之间没有直接的关联,但是在执行app.exec()时,QGuiApplication会开始事件循环,而在事件循环中,engine对象中的信号和槽(signal and slot)连接到了事件处理函数,这样就完成了窗口对象和事件循环对象的关联。
    • 简单来说,PySide6自动将QML文件中的窗口对象和事件循环对象关联在一起,你不需要显式地编写代码去完成这个过程。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月3日
  • 已采纳回答 4月25日
  • 修改了问题 4月15日
  • 创建了问题 4月15日

悬赏问题

  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图