[{"data":1,"prerenderedAt":673},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian":3,"wiki-doc-items-/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian":603,"language-switcher-data-/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian":657,"wiki-i18n-paths-/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian":672},{"id":4,"title":5,"body":6,"canonicalPath":584,"chapter":585,"chapterSort":586,"date":587,"description":26,"docI18nKey":588,"docKey":589,"docRoot":590,"docTitle":591,"extension":592,"i18nKey":593,"isBlogPost":594,"isWikiDoc":37,"isWikiIndex":594,"layout":595,"legacyPath":595,"locale":596,"localeSlug":597,"meta":598,"navigation":37,"path":584,"seo":599,"sourcePath":600,"sourceStem":593,"stem":601,"wikiDepth":34,"__hash__":602},"content/_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch8-QT环境搭建.md","QT environment setup",{"type":7,"value":8,"toc":578},"minimark",[9,14,19,138,142,151,236,240,249,253,264,270,273,278,281,286,289,294,301,306,316,321,326,330,333,347,352,355,358,559,564,567,574],[10,11,13],"h3",{"id":12},"install-qt","Install QT",[15,16,18],"h4",{"id":17},"qt5","QT5",[20,21,27],"pre",{"className":22,"code":23,"language":24,"meta":25,"style":26},"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","",[28,29,30,39,45,51,57,63,68,74,79,85,91,97,102,108,114,120,126,132],"code",{"__ignoreMap":26},[31,32,35],"span",{"class":33,"line":34},"line",1,[31,36,38],{"emptyLinePlaceholder":37},true,"\n",[31,40,42],{"class":33,"line":41},2,[31,43,44],{},"# debian系\n",[31,46,48],{"class":33,"line":47},3,[31,49,50],{},"sudo apt install qt5-default          # 基础开发工具（qmake、moc 等）\n",[31,52,54],{"class":33,"line":53},4,[31,55,56],{},"sudo apt install qtbase5-dev          # Qt5 核心库开发文件\n",[31,58,60],{"class":33,"line":59},5,[31,61,62],{},"sudo apt install qttools5-dev         # Qt5 工具（Qt Designer、Linguist 等）\n",[31,64,66],{"class":33,"line":65},6,[31,67,38],{"emptyLinePlaceholder":37},[31,69,71],{"class":33,"line":70},7,[31,72,73],{},"# 红帽系\n",[31,75,77],{"class":33,"line":76},8,[31,78,38],{"emptyLinePlaceholder":37},[31,80,82],{"class":33,"line":81},9,[31,83,84],{},"# 安装 Qt5 核心开发包\n",[31,86,88],{"class":33,"line":87},10,[31,89,90],{},"sudo dnf install qt5-qtbase-devel      # Qt5 核心库开发文件\n",[31,92,94],{"class":33,"line":93},11,[31,95,96],{},"sudo dnf install qt5-qttools-devel     # Qt5 工具（Qt Designer、Linguist 等）\n",[31,98,100],{"class":33,"line":99},12,[31,101,38],{"emptyLinePlaceholder":37},[31,103,105],{"class":33,"line":104},13,[31,106,107],{},"# 安装常用模块（按需选择）\n",[31,109,111],{"class":33,"line":110},14,[31,112,113],{},"sudo dnf install \\\n",[31,115,117],{"class":33,"line":116},15,[31,118,119],{},"  qt5-qtdeclarative-devel \\           # Qt Quick\n",[31,121,123],{"class":33,"line":122},16,[31,124,125],{},"  qt5-qtsvg-devel \\                   # SVG 支持\n",[31,127,129],{"class":33,"line":128},17,[31,130,131],{},"  qt5-qtwayland-devel \\               # Wayland 支持\n",[31,133,135],{"class":33,"line":134},18,[31,136,137],{},"  qt5-qtwebengine-devel               # WebEngine 支持\n",[15,139,141],{"id":140},"qt6","QT6",[143,144,145],"p",{},[146,147,148],"a",{"href":148,"rel":149},"https://www.qt.io/product/qt6",[150],"nofollow",[20,152,156],{"className":153,"code":154,"language":155,"meta":26,"style":26},"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",[28,157,158,162,167,186,190,194,209,213],{"__ignoreMap":26},[31,159,160],{"class":33,"line":34},[31,161,38],{"emptyLinePlaceholder":37},[31,163,164],{"class":33,"line":41},[31,165,44],{"class":166},"sJ8bj",[31,168,169,173,177,180,183],{"class":33,"line":47},[31,170,172],{"class":171},"sScJk","sudo",[31,174,176],{"class":175},"sZZnC"," apt",[31,178,179],{"class":175}," install",[31,181,182],{"class":175}," qt6-base-dev",[31,184,185],{"class":175}," qt6-tools-dev\n",[31,187,188],{"class":33,"line":53},[31,189,38],{"emptyLinePlaceholder":37},[31,191,192],{"class":33,"line":59},[31,193,73],{"class":166},[31,195,196,198,201,203,206],{"class":33,"line":65},[31,197,172],{"class":171},[31,199,200],{"class":175}," dnf",[31,202,179],{"class":175},[31,204,205],{"class":175}," qt6-qtbase-devel",[31,207,208],{"class":175}," qt6-qttools-devel\n",[31,210,211],{"class":33,"line":70},[31,212,38],{"emptyLinePlaceholder":37},[31,214,215,217,219,221,224,227,230,233],{"class":33,"line":76},[31,216,172],{"class":171},[31,218,200],{"class":175},[31,220,179],{"class":175},[31,222,223],{"class":175}," qt6-qtdeclarative-devel",[31,225,226],{"class":175}," qt6-qtsvg-devel",[31,228,229],{"class":175}," qt6-qtwayland-devel",[31,231,232],{"class":175}," qt6-qt5compat-devel",[31,234,235],{"class":175}," qt6-qtwebsockets-devel\n",[10,237,239],{"id":238},"vscode-environment-setup","VScode environment setup",[143,241,242,243,248],{},"Mainly using CMake to set up the QT5/QT6 development environment. See ",[146,244,247],{"href":245,"rel":246},"https://sdutvincirobot.feishu.cn/wiki/Dosvw46BtiBBLEkTdO4cPOt8nVb",[150],"CMake C/C++ Compilation Environment Setup"," for details.",[10,250,252],{"id":251},"qt-designer-generates-ui","QT Designer generates .ui",[143,254,255,256,259,260,263],{},"The main approach is to use the following software for graphical design, then generate ",[28,257,258],{},".ui"," files and convert them into ",[28,261,262],{},".h"," files for use in C/C++ projects.",[143,265,266],{},[267,268],"img",{"alt":26,"src":269},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image62.webp",[143,271,272],{},"For example, to create a Hello World window, open QT Designer and select Create Widget.",[143,274,275],{},[267,276],{"alt":26,"src":277},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image63.webp",[143,279,280],{},"Drag it in, and enter Hello World!",[143,282,283],{},[267,284],{"alt":26,"src":285},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image64.webp",[143,287,288],{},"You can adjust the font size.",[143,290,291],{},[267,292],{"alt":26,"src":293},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image65.webp",[143,295,296,297,300],{},"You can modify ",[28,298,299],{},"objectName",", which is the class name called in the C++ code.",[143,302,303],{},[267,304],{"alt":26,"src":305},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image66.webp",[143,307,308,309,311,312,315],{},"Finally, save the ",[28,310,258],{}," file, usually in the ",[28,313,314],{},"form"," folder under the function package.",[143,317,318],{},[267,319],{"alt":26,"src":320},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image67.webp",[143,322,323],{},[267,324],{"alt":26,"src":325},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image68.webp",[10,327,329],{"id":328},"call-the-ui-class-and-compile-and-run-it","Call the .ui class and compile and run it.",[143,331,332],{},"First, make sure your VSCode + CMake configuration is correct.",[143,334,335,336,339,340,343,344,346],{},"Then in ",[28,337,338],{},"cmake ..",", next ",[28,341,342],{},"make install",", at this point the ",[28,345,262],{}," file will appear in the QT_Projects/QT6/QT6_Template/build/src/QT6TEST/ directory.",[143,348,349],{},[267,350],{"alt":26,"src":351},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image69.webp",[143,353,354],{},"Then you can reference this .h in the code.",[143,356,357],{},"Then you can proceed to implement your own code functionality.",[20,359,363],{"className":360,"code":361,"language":362,"meta":26,"style":26},"language-cpp shiki shiki-themes github-light github-dark","#include \"QT6TEST/inc/qt6_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    // 创建主窗口和 UI 对象\n    QWidget mainWindow;\n    Ui::MyWidget ui;        // Ui 命名空间中的类名与 .ui 文件中的 class 属性一致\n    ui.setupUi(&mainWindow);\n\n    // 设置窗口标题\n    mainWindow.setWindowTitle(\"Hello Qt6!\");\n\n    // 显示窗口\n    mainWindow.show();\n\n    return app.exec();\n}\n","cpp",[28,364,365,374,381,388,395,399,432,437,448,452,457,462,473,489,493,498,514,518,523,534,539,553],{"__ignoreMap":26},[31,366,367,371],{"class":33,"line":34},[31,368,370],{"class":369},"szBVR","#include",[31,372,373],{"class":175}," \"QT6TEST/inc/qt6_test.hpp\"\n",[31,375,376,378],{"class":33,"line":41},[31,377,370],{"class":369},[31,379,380],{"class":175}," \u003CQApplication>\n",[31,382,383,385],{"class":33,"line":47},[31,384,370],{"class":369},[31,386,387],{"class":175}," \u003CQWidget>\n",[31,389,390,392],{"class":33,"line":53},[31,391,370],{"class":369},[31,393,394],{"class":175}," \"ui_mywidget.h\"\n",[31,396,397],{"class":33,"line":59},[31,398,38],{"emptyLinePlaceholder":37},[31,400,401,404,407,411,413,417,420,423,426,429],{"class":33,"line":65},[31,402,403],{"class":369},"int",[31,405,406],{"class":171}," qt6_test",[31,408,410],{"class":409},"sVt8B","(",[31,412,403],{"class":369},[31,414,416],{"class":415},"s4XuR"," argc",[31,418,419],{"class":409},",",[31,421,422],{"class":369},"char",[31,424,425],{"class":369}," **",[31,427,428],{"class":415},"argv",[31,430,431],{"class":409},")\n",[31,433,434],{"class":33,"line":70},[31,435,436],{"class":409},"{\n",[31,438,439,442,445],{"class":33,"line":76},[31,440,441],{"class":409},"    QApplication ",[31,443,444],{"class":171},"app",[31,446,447],{"class":409},"(argc, argv);\n",[31,449,450],{"class":33,"line":81},[31,451,38],{"emptyLinePlaceholder":37},[31,453,454],{"class":33,"line":87},[31,455,456],{"class":166},"    // 创建主窗口和 UI 对象\n",[31,458,459],{"class":33,"line":93},[31,460,461],{"class":409},"    QWidget mainWindow;\n",[31,463,464,467,470],{"class":33,"line":99},[31,465,466],{"class":171},"    Ui",[31,468,469],{"class":409},"::MyWidget ui;",[31,471,472],{"class":166},"        // Ui 命名空间中的类名与 .ui 文件中的 class 属性一致\n",[31,474,475,478,481,483,486],{"class":33,"line":104},[31,476,477],{"class":409},"    ui.",[31,479,480],{"class":171},"setupUi",[31,482,410],{"class":409},[31,484,485],{"class":369},"&",[31,487,488],{"class":409},"mainWindow);\n",[31,490,491],{"class":33,"line":110},[31,492,38],{"emptyLinePlaceholder":37},[31,494,495],{"class":33,"line":116},[31,496,497],{"class":166},"    // 设置窗口标题\n",[31,499,500,503,506,508,511],{"class":33,"line":122},[31,501,502],{"class":409},"    mainWindow.",[31,504,505],{"class":171},"setWindowTitle",[31,507,410],{"class":409},[31,509,510],{"class":175},"\"Hello Qt6!\"",[31,512,513],{"class":409},");\n",[31,515,516],{"class":33,"line":128},[31,517,38],{"emptyLinePlaceholder":37},[31,519,520],{"class":33,"line":134},[31,521,522],{"class":166},"    // 显示窗口\n",[31,524,526,528,531],{"class":33,"line":525},19,[31,527,502],{"class":409},[31,529,530],{"class":171},"show",[31,532,533],{"class":409},"();\n",[31,535,537],{"class":33,"line":536},20,[31,538,38],{"emptyLinePlaceholder":37},[31,540,542,545,548,551],{"class":33,"line":541},21,[31,543,544],{"class":369},"    return",[31,546,547],{"class":409}," app.",[31,549,550],{"class":171},"exec",[31,552,533],{"class":409},[31,554,556],{"class":33,"line":555},22,[31,557,558],{"class":409},"}\n",[143,560,561],{},[267,562],{"alt":26,"src":563},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image70.webp",[143,565,566],{},"I have a pre-configured Qt6 environment here that you can clone and use.",[143,568,569],{},[146,570,573],{"href":571,"rel":572},"https://github.com/tungchiahui/QT%5C_Projects/tree/main/QT6/QT6%5C_Template",[150],"https://github.com/tungchiahui/QT\\_Projects/tree/main/QT6/QT6\\_Template",[575,576,577],"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":26,"searchDepth":41,"depth":41,"links":579},[580,581,582,583],{"id":12,"depth":47,"text":13},{"id":238,"depth":47,"text":239},{"id":251,"depth":47,"text":252},{"id":328,"depth":47,"text":329},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian","8",8000000,"2023-12-10","wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","en-us:2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","电控视觉环境搭建","md","wiki/2023-12-10-电控视觉环境搭建/ch8-QT环境搭建",false,null,"en-US","en-us",{},{"title":5,"description":26},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch8-QT环境搭建","C62aUG9Ftntrr9G0HkbWGo5izjNA--3NS3NlMGQLdj8",[604,610,616,622,628,634,640,646,647,653],{"path":605,"stem":606,"title":607,"date":587,"chapter":608,"chapterSort":609,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch1-c-c-huan-jing-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch1-C_C++环境搭建","C/C++ environment setup","1",1000000,{"path":611,"stem":612,"title":613,"date":587,"chapter":614,"chapterSort":615,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch2-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch2-ARMKeilMDK(ARM单片机环境搭建)","ARM Keil MDK (ARM Microcontroller Environment Setup)","2",2000000,{"path":617,"stem":618,"title":619,"date":587,"chapter":620,"chapterSort":621,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch3-linux-ji-ben-pei-zhi","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch3-Linux基本配置","Basic Linux Configuration","3",3000000,{"path":623,"stem":624,"title":625,"date":587,"chapter":626,"chapterSort":627,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch4-cmake-gong-cheng-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch4-CMake工程搭建","CMake project setup","4",4000000,{"path":629,"stem":630,"title":631,"date":587,"chapter":632,"chapterSort":633,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch5-opencv-cuda-huan-jing-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch5-OpenCV__CUDA环境搭建","OpenCV CUDA Environment Setup","5",5000000,{"path":635,"stem":636,"title":637,"date":587,"chapter":638,"chapterSort":639,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch6-yolo-huan-jing-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch6-YOLO环境搭建","YOLO environment setup","6",6000000,{"path":641,"stem":642,"title":643,"date":587,"chapter":644,"chapterSort":645,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch7-ros-huan-jing-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch7-ROS环境搭建","ROS environment setup","7",7000000,{"path":584,"stem":601,"title":5,"date":587,"chapter":585,"chapterSort":586,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},{"path":648,"stem":649,"title":650,"date":587,"chapter":651,"chapterSort":652,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":594},"/en-us/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch9-docker-huan-jing-da-jian","_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/ch9-Docker环境搭建","Docker environment setup","9",9000000,{"path":590,"stem":654,"title":655,"date":587,"chapter":595,"chapterSort":656,"docKey":589,"docRoot":590,"docTitle":591,"isWikiDoc":37,"isWikiIndex":37},"_i18n/en-us/wiki/2023-12-10-电控视觉环境搭建/index","Electrical Control Vision Environment Setup",0,{"variants":658},[659,660,663,666,669],{"path":584,"localeSlug":597,"i18nKey":593},{"path":661,"localeSlug":662,"i18nKey":593},"/zh-hant/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian","zh-hant",{"path":664,"localeSlug":665,"i18nKey":593},"/zh-hk/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian","zh-hk",{"path":667,"localeSlug":668,"i18nKey":593},"/zh-tw/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian","zh-tw",{"path":670,"localeSlug":671,"i18nKey":593},"/zh-cn/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian","zh-cn",[584,600,661,600,664,600,667,600,670,600],1780673988120]