fcxfgh
V2EX  ›  问与答

Qt & C++小白求教

  •  
  •   fcxfgh · Aug 31, 2019 · 2266 views
    This topic created in 2483 days ago, the information mentioned may be changed or developed.
    新建的 qt 窗口类头文件下有个 namespace Ui 的声明,ctrl+左键点击 Widget 便跳转到 ui_widget,为什么可以跳转?在这里之前没有包含 ui_widget.h 啊?

    5 replies    2019-08-31 18:57:56 +08:00
    345161974
        1
    345161974  
       Aug 31, 2019 via iPhone
    这个 ui_xxx.cpp 是 Qt 根据 QML 布局文件自动生成的 UI 代码。你新建的窗体类继承了 ui_xxx,通过 ui_xxx 类的 setupUI 函数完成了界面布局的重用。
    fcxfgh
        2
    fcxfgh  
    OP
       Aug 31, 2019
    @345161974
    窗体类没有继承 ui_xxx 吧,是在窗体类构造函数用 ui_xxx 对象初始化了*ui 指针
    fcxfgh
        3
    fcxfgh  
    OP
       Aug 31, 2019
    @345161974
    主要不知道 qtcreator 在窗体类头文件没有包含 ui_xxx.h 的情况下怎么找到 ui_xxx 下 namespace 的定义的,感觉是 qtcreator 对这里有特殊优化
    fcxfgh
        4
    fcxfgh  
    OP
       Aug 31, 2019
    把 ui_xxx.h 内容清空结果也跳转过去了,也是醉了
    BingoXuan
        5
    BingoXuan  
       Aug 31, 2019 via Android
    如果用 cmake 构建你就知道了,qt 有工具将 ui 文件转换为 c++的头文件。然后 cmake 会将将生成文件目录 include 进去,就可以检索跳转了。

    qmake 操作也一样,只是自动化且用户无感知而已
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2661 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 12:09 · PVG 20:09 · LAX 05:09 · JFK 08:09
    ♥ Do have faith in what you're doing.