V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fcxfgh
V2EX  ›  问与答

Qt & C++小白求教

  •  
  •   fcxfgh · 2019-08-31 16:28:25 +08:00 · 1412 次点击
    这是一个创建于 1698 天前的主题,其中的信息可能已经有所发展或是发生改变。
    新建的 qt 窗口类头文件下有个 namespace Ui 的声明,ctrl+左键点击 Widget 便跳转到 ui_widget,为什么可以跳转?在这里之前没有包含 ui_widget.h 啊?

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

    qmake 操作也一样,只是自动化且用户无感知而已
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5938 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 02:21 · PVG 10:21 · LAX 19:21 · JFK 22:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.