[{"data":1,"prerenderedAt":652},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0800-qt-huan-jing-da-jian":3,"wiki-doc-items-2023-12-10-dian-kong-shi-jue-huan-jing-da-jian":585,"wiki:author-members":640},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":572,"chapterOrder":573,"date":574,"description":28,"docKey":575,"docRoot":576,"docTitle":577,"extension":578,"isWikiDoc":39,"isWikiIndex":579,"meta":580,"navigation":39,"path":581,"seo":582,"stem":583,"wikiDepth":36,"__hash__":584},"wiki\u002Fwiki\u002F2023-12-10-电控视觉环境搭建\u002F0800-QT环境搭建.md","QT环境搭建",[7],"董佳辉",{"type":9,"value":10,"toc":566},"minimark",[11,16,21,140,144,153,238,242,249,253,264,270,273,278,281,286,289,294,297,302,305,310,315,319,322,336,341,344,347,548,553,556,562],[12,13,15],"h3",{"id":14},"安装qt","安装QT",[17,18,20],"h4",{"id":19},"qt5","QT5",[22,23,29],"pre",{"className":24,"code":25,"language":26,"meta":27,"style":28},"language-Plain shiki shiki-themes github-light github-dark","\n# debian系\nsudo apt install qt5-default          # 基础开发工具（qmake、moc 等）\nsudo apt install qtbase5-dev          # Qt5 核心库开发文件\nsudo apt install qttools5-dev         # Qt5 工具（Qt Designer、Linguist 等）\n\n# 红帽系\n\n# 安装 Qt5 核心开发包\nsudo dnf install qt5-qtbase-devel      # Qt5 核心库开发文件\nsudo dnf install qt5-qttools-devel     # Qt5 工具（Qt Designer、Linguist 等）\n\n# 安装常用模块（按需选择）\nsudo dnf install \\\n  qt5-qtdeclarative-devel \\           # Qt Quick\n  qt5-qtsvg-devel \\                   # SVG 支持\n  qt5-qtwayland-devel \\               # Wayland 支持\n  qt5-qtwebengine-devel               # WebEngine 支持\n","Plain","Text","",[30,31,32,41,47,53,59,65,70,76,81,87,93,99,104,110,116,122,128,134],"code",{"__ignoreMap":28},[33,34,37],"span",{"class":35,"line":36},"line",1,[33,38,40],{"emptyLinePlaceholder":39},true,"\n",[33,42,44],{"class":35,"line":43},2,[33,45,46],{},"# debian系\n",[33,48,50],{"class":35,"line":49},3,[33,51,52],{},"sudo apt install qt5-default          # 基础开发工具（qmake、moc 等）\n",[33,54,56],{"class":35,"line":55},4,[33,57,58],{},"sudo apt install qtbase5-dev          # Qt5 核心库开发文件\n",[33,60,62],{"class":35,"line":61},5,[33,63,64],{},"sudo apt install qttools5-dev         # Qt5 工具（Qt Designer、Linguist 等）\n",[33,66,68],{"class":35,"line":67},6,[33,69,40],{"emptyLinePlaceholder":39},[33,71,73],{"class":35,"line":72},7,[33,74,75],{},"# 红帽系\n",[33,77,79],{"class":35,"line":78},8,[33,80,40],{"emptyLinePlaceholder":39},[33,82,84],{"class":35,"line":83},9,[33,85,86],{},"# 安装 Qt5 核心开发包\n",[33,88,90],{"class":35,"line":89},10,[33,91,92],{},"sudo dnf install qt5-qtbase-devel      # Qt5 核心库开发文件\n",[33,94,96],{"class":35,"line":95},11,[33,97,98],{},"sudo dnf install qt5-qttools-devel     # Qt5 工具（Qt Designer、Linguist 等）\n",[33,100,102],{"class":35,"line":101},12,[33,103,40],{"emptyLinePlaceholder":39},[33,105,107],{"class":35,"line":106},13,[33,108,109],{},"# 安装常用模块（按需选择）\n",[33,111,113],{"class":35,"line":112},14,[33,114,115],{},"sudo dnf install \\\n",[33,117,119],{"class":35,"line":118},15,[33,120,121],{},"  qt5-qtdeclarative-devel \\           # Qt Quick\n",[33,123,125],{"class":35,"line":124},16,[33,126,127],{},"  qt5-qtsvg-devel \\                   # SVG 支持\n",[33,129,131],{"class":35,"line":130},17,[33,132,133],{},"  qt5-qtwayland-devel \\               # Wayland 支持\n",[33,135,137],{"class":35,"line":136},18,[33,138,139],{},"  qt5-qtwebengine-devel               # WebEngine 支持\n",[17,141,143],{"id":142},"qt6","QT6",[145,146,147],"p",{},[148,149,150],"a",{"href":150,"rel":151},"https:\u002F\u002Fwww.qt.io\u002Fproduct\u002Fqt6",[152],"nofollow",[22,154,158],{"className":155,"code":156,"language":157,"meta":28,"style":28},"language-bash shiki shiki-themes github-light github-dark","\n# debian系\nsudo apt install qt6-base-dev qt6-tools-dev\n\n# 红帽系\nsudo dnf install qt6-qtbase-devel qt6-qttools-devel\n\nsudo dnf install qt6-qtdeclarative-devel qt6-qtsvg-devel qt6-qtwayland-devel qt6-qt5compat-devel qt6-qtwebsockets-devel\n","bash",[30,159,160,164,169,188,192,196,211,215],{"__ignoreMap":28},[33,161,162],{"class":35,"line":36},[33,163,40],{"emptyLinePlaceholder":39},[33,165,166],{"class":35,"line":43},[33,167,46],{"class":168},"sJ8bj",[33,170,171,175,179,182,185],{"class":35,"line":49},[33,172,174],{"class":173},"sScJk","sudo",[33,176,178],{"class":177},"sZZnC"," apt",[33,180,181],{"class":177}," install",[33,183,184],{"class":177}," qt6-base-dev",[33,186,187],{"class":177}," qt6-tools-dev\n",[33,189,190],{"class":35,"line":55},[33,191,40],{"emptyLinePlaceholder":39},[33,193,194],{"class":35,"line":61},[33,195,75],{"class":168},[33,197,198,200,203,205,208],{"class":35,"line":67},[33,199,174],{"class":173},[33,201,202],{"class":177}," dnf",[33,204,181],{"class":177},[33,206,207],{"class":177}," qt6-qtbase-devel",[33,209,210],{"class":177}," qt6-qttools-devel\n",[33,212,213],{"class":35,"line":72},[33,214,40],{"emptyLinePlaceholder":39},[33,216,217,219,221,223,226,229,232,235],{"class":35,"line":78},[33,218,174],{"class":173},[33,220,202],{"class":177},[33,222,181],{"class":177},[33,224,225],{"class":177}," qt6-qtdeclarative-devel",[33,227,228],{"class":177}," qt6-qtsvg-devel",[33,230,231],{"class":177}," qt6-qtwayland-devel",[33,233,234],{"class":177}," qt6-qt5compat-devel",[33,236,237],{"class":177}," qt6-qtwebsockets-devel\n",[12,239,241],{"id":240},"vscode环境配置","VScode环境配置",[145,243,244,245],{},"主要是CMake搭建QT5\u002FQT6开发环境，详看",[148,246,248],{"href":247},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","CMake C\u002FC++编译环境配置",[12,250,252],{"id":251},"qt-designer生成ui","QT Designer生成.ui",[145,254,255,256,259,260,263],{},"主要是用下面这个软件进行图形化设计，然后生成",[30,257,258],{},".ui","文件再转化为",[30,261,262],{},".h","文件用于C\u002FC++工程。",[145,265,266],{},[267,268],"img",{"alt":28,"src":269},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage62.webp",[145,271,272],{},"比如我们创建一个Helloworld窗口，打开QT Designer之后，选择创建Widget。",[145,274,275],{},[267,276],{"alt":28,"src":277},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage63.webp",[145,279,280],{},"拖进来，输入Hello World！",[145,282,283],{},[267,284],{"alt":28,"src":285},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage64.webp",[145,287,288],{},"可以调字体大小。",[145,290,291],{},[267,292],{"alt":28,"src":293},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage65.webp",[145,295,296],{},"可以修改objectName，即是C++代码里调用的类名称。",[145,298,299],{},[267,300],{"alt":28,"src":301},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage66.webp",[145,303,304],{},"最后保存.ui文件，一般是保存在功能包下的form文件夹下。",[145,306,307],{},[267,308],{"alt":28,"src":309},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage67.webp",[145,311,312],{},[267,313],{"alt":28,"src":314},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage68.webp",[12,316,318],{"id":317},"调用ui类并编译运行","调用.ui类并编译运行",[145,320,321],{},"首先先确保你的VScode+CMake配置正确。",[145,323,324,325,328,329,332,333,335],{},"然后再",[30,326,327],{},"cmake ..","，接着",[30,330,331],{},"make install","，此时QT_Projects\u002FQT6\u002FQT6_Template\u002Fbuild\u002Fsrc\u002FQT6TEST\u002F目录下会出现",[30,334,262],{},"文件。",[145,337,338],{},[267,339],{"alt":28,"src":340},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage69.webp",[145,342,343],{},"然后可以在代码中引用这个.h。",[145,345,346],{},"接着实现自己的代码功能就可以了。",[22,348,352],{"className":349,"code":350,"language":351,"meta":28,"style":28},"language-cpp shiki shiki-themes github-light github-dark","#include \"QT6TEST\u002Finc\u002Fqt6_test.hpp\"\n#include \u003CQApplication>\n#include \u003CQWidget>\n#include \"ui_mywidget.h\"\n\nint qt6_test(int argc,char **argv)\n{\n    QApplication app(argc, argv);\n\n    \u002F\u002F 创建主窗口和 UI 对象\n    QWidget mainWindow;\n    Ui::MyWidget ui;        \u002F\u002F Ui 命名空间中的类名与 .ui 文件中的 class 属性一致\n    ui.setupUi(&mainWindow);\n\n    \u002F\u002F 设置窗口标题\n    mainWindow.setWindowTitle(\"Hello Qt6!\");\n\n    \u002F\u002F 显示窗口\n    mainWindow.show();\n\n    return app.exec();\n}\n","cpp",[30,353,354,363,370,377,384,388,421,426,437,441,446,451,462,478,482,487,503,507,512,523,528,542],{"__ignoreMap":28},[33,355,356,360],{"class":35,"line":36},[33,357,359],{"class":358},"szBVR","#include",[33,361,362],{"class":177}," \"QT6TEST\u002Finc\u002Fqt6_test.hpp\"\n",[33,364,365,367],{"class":35,"line":43},[33,366,359],{"class":358},[33,368,369],{"class":177}," \u003CQApplication>\n",[33,371,372,374],{"class":35,"line":49},[33,373,359],{"class":358},[33,375,376],{"class":177}," \u003CQWidget>\n",[33,378,379,381],{"class":35,"line":55},[33,380,359],{"class":358},[33,382,383],{"class":177}," \"ui_mywidget.h\"\n",[33,385,386],{"class":35,"line":61},[33,387,40],{"emptyLinePlaceholder":39},[33,389,390,393,396,400,402,406,409,412,415,418],{"class":35,"line":67},[33,391,392],{"class":358},"int",[33,394,395],{"class":173}," qt6_test",[33,397,399],{"class":398},"sVt8B","(",[33,401,392],{"class":358},[33,403,405],{"class":404},"s4XuR"," argc",[33,407,408],{"class":398},",",[33,410,411],{"class":358},"char",[33,413,414],{"class":358}," **",[33,416,417],{"class":404},"argv",[33,419,420],{"class":398},")\n",[33,422,423],{"class":35,"line":72},[33,424,425],{"class":398},"{\n",[33,427,428,431,434],{"class":35,"line":78},[33,429,430],{"class":398},"    QApplication ",[33,432,433],{"class":173},"app",[33,435,436],{"class":398},"(argc, argv);\n",[33,438,439],{"class":35,"line":83},[33,440,40],{"emptyLinePlaceholder":39},[33,442,443],{"class":35,"line":89},[33,444,445],{"class":168},"    \u002F\u002F 创建主窗口和 UI 对象\n",[33,447,448],{"class":35,"line":95},[33,449,450],{"class":398},"    QWidget mainWindow;\n",[33,452,453,456,459],{"class":35,"line":101},[33,454,455],{"class":173},"    Ui",[33,457,458],{"class":398},"::MyWidget ui;",[33,460,461],{"class":168},"        \u002F\u002F Ui 命名空间中的类名与 .ui 文件中的 class 属性一致\n",[33,463,464,467,470,472,475],{"class":35,"line":106},[33,465,466],{"class":398},"    ui.",[33,468,469],{"class":173},"setupUi",[33,471,399],{"class":398},[33,473,474],{"class":358},"&",[33,476,477],{"class":398},"mainWindow);\n",[33,479,480],{"class":35,"line":112},[33,481,40],{"emptyLinePlaceholder":39},[33,483,484],{"class":35,"line":118},[33,485,486],{"class":168},"    \u002F\u002F 设置窗口标题\n",[33,488,489,492,495,497,500],{"class":35,"line":124},[33,490,491],{"class":398},"    mainWindow.",[33,493,494],{"class":173},"setWindowTitle",[33,496,399],{"class":398},[33,498,499],{"class":177},"\"Hello Qt6!\"",[33,501,502],{"class":398},");\n",[33,504,505],{"class":35,"line":130},[33,506,40],{"emptyLinePlaceholder":39},[33,508,509],{"class":35,"line":136},[33,510,511],{"class":168},"    \u002F\u002F 显示窗口\n",[33,513,515,517,520],{"class":35,"line":514},19,[33,516,491],{"class":398},[33,518,519],{"class":173},"show",[33,521,522],{"class":398},"();\n",[33,524,526],{"class":35,"line":525},20,[33,527,40],{"emptyLinePlaceholder":39},[33,529,531,534,537,540],{"class":35,"line":530},21,[33,532,533],{"class":358},"    return",[33,535,536],{"class":398}," app.",[33,538,539],{"class":173},"exec",[33,541,522],{"class":398},[33,543,545],{"class":35,"line":544},22,[33,546,547],{"class":398},"}\n",[145,549,550],{},[267,551],{"alt":28,"src":552},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage70.webp",[145,554,555],{},"我这里有个配置好的QT6环境，你可以clone下来使用。",[145,557,558],{},[148,559,560],{"href":560,"rel":561},"https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002FQT_Projects\u002Ftree\u002Fmain\u002FQT6\u002FQT6_Template",[152],[563,564,565],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":28,"searchDepth":43,"depth":43,"links":567},[568,569,570,571],{"id":14,"depth":49,"text":15},{"id":240,"depth":49,"text":241},{"id":251,"depth":49,"text":252},{"id":317,"depth":49,"text":318},0,"0800","2023-12-10","2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","电控视觉环境搭建","md",false,{},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0800-qt-huan-jing-da-jian",{"title":5,"description":28},"wiki\u002F2023-12-10-电控视觉环境搭建\u002F0800-QT环境搭建","t06jjVyygKLTPy-9up_J3TLKqkttE10AqL3m-HracHg",[586,592,598,604,610,616,622,628,630,636],{"path":587,"stem":588,"title":589,"authors":590,"date":574,"chapterOrder":591,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0100-c-c-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0100-C_C++环境搭建","C\u002FC++环境搭建",[7],"0100",{"path":593,"stem":594,"title":595,"authors":596,"date":574,"chapterOrder":597,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0200-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0200-ARMKeilMDK(ARM单片机环境搭建)","ARM Keil MDK(ARM单片机环境搭建)",[7],"0200",{"path":599,"stem":600,"title":601,"authors":602,"date":574,"chapterOrder":603,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0300-linux-ji-ben-pei-zhi","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0300-Linux基本配置","Linux基本配置",[7],"0300",{"path":605,"stem":606,"title":607,"authors":608,"date":574,"chapterOrder":609,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0400-cmake-gong-cheng-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0400-CMake工程搭建","CMake工程搭建",[7],"0400",{"path":611,"stem":612,"title":613,"authors":614,"date":574,"chapterOrder":615,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0500-opencv-cuda-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0500-OpenCV__CUDA环境搭建","OpenCV_CUDA环境搭建",[7],"0500",{"path":617,"stem":618,"title":619,"authors":620,"date":574,"chapterOrder":621,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0600-yolo-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0600-YOLO环境搭建","YOLO环境搭建",[7],"0600",{"path":623,"stem":624,"title":625,"authors":626,"date":574,"chapterOrder":627,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0700-ros-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0700-ROS环境搭建","ROS环境搭建",[7],"0700",{"path":581,"stem":583,"title":5,"authors":629,"date":574,"chapterOrder":573,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},[7],{"path":631,"stem":632,"title":633,"authors":634,"date":574,"chapterOrder":635,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002F0900-docker-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002F0900-Docker环境搭建","Docker环境搭建",[7],"0900",{"path":576,"stem":637,"title":577,"authors":638,"date":574,"chapterOrder":639,"chapterDepth":572,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":39,"isWikiIndex":39},"wiki\u002F2023-12-10-电控视觉环境搭建\u002Findex",[7],null,[641,643,646,649],{"name":7,"image":642},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":644,"image":645},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":647,"image":648},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":650,"image":651},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431900952]