[{"data":1,"prerenderedAt":639},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch8-qt-huan-jing-da-jian":3,"wiki-doc-items-2023-12-10-dian-kong-shi-jue-huan-jing-da-jian":585},{"id":4,"title":5,"body":6,"chapter":572,"chapterSort":573,"date":574,"description":26,"docKey":575,"docRoot":576,"docTitle":577,"extension":578,"isWikiDoc":37,"isWikiIndex":579,"meta":580,"navigation":37,"path":581,"seo":582,"stem":583,"wikiDepth":34,"__hash__":584},"wiki\u002Fwiki\u002F2023-12-10-电控视觉环境搭建\u002Fch8-QT环境搭建.md","QT环境搭建",{"type":7,"value":8,"toc":566},"minimark",[9,14,19,138,142,151,236,240,248,252,263,269,272,277,280,285,288,293,296,301,304,309,314,318,321,335,340,343,346,547,552,555,562],[10,11,13],"h3",{"id":12},"安装qt","安装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:\u002F\u002Fwww.qt.io\u002Fproduct\u002Fqt6",[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环境配置","VScode环境配置",[143,241,242,243],{},"主要是CMake搭建QT5\u002FQT6开发环境，详看",[146,244,247],{"href":245,"rel":246},"https:\u002F\u002Fsdutvincirobot.feishu.cn\u002Fwiki\u002FDosvw46BtiBBLEkTdO4cPOt8nVb",[150],"CMake C\u002FC++编译环境配置",[10,249,251],{"id":250},"qt-designer生成ui","QT Designer生成.ui",[143,253,254,255,258,259,262],{},"主要是用下面这个软件进行图形化设计，然后生成",[28,256,257],{},".ui","文件再转化为",[28,260,261],{},".h","文件用于C\u002FC++工程。",[143,264,265],{},[266,267],"img",{"alt":26,"src":268},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage62.webp",[143,270,271],{},"比如我们创建一个Helloworld窗口，打开QT Designer之后，选择创建Widget。",[143,273,274],{},[266,275],{"alt":26,"src":276},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage63.webp",[143,278,279],{},"拖进来，输入Hello World！",[143,281,282],{},[266,283],{"alt":26,"src":284},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage64.webp",[143,286,287],{},"可以调字体大小。",[143,289,290],{},[266,291],{"alt":26,"src":292},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage65.webp",[143,294,295],{},"可以修改objectName，即是C++代码里调用的类名称。",[143,297,298],{},[266,299],{"alt":26,"src":300},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage66.webp",[143,302,303],{},"最后保存.ui文件，一般是保存在功能包下的form文件夹下。",[143,305,306],{},[266,307],{"alt":26,"src":308},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage67.webp",[143,310,311],{},[266,312],{"alt":26,"src":313},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage68.webp",[10,315,317],{"id":316},"调用ui类并编译运行","调用.ui类并编译运行",[143,319,320],{},"首先先确保你的VScode+CMake配置正确。",[143,322,323,324,327,328,331,332,334],{},"然后再",[28,325,326],{},"cmake ..","，接着",[28,329,330],{},"make install","，此时QT_Projects\u002FQT6\u002FQT6_Template\u002Fbuild\u002Fsrc\u002FQT6TEST\u002F目录下会出现",[28,333,261],{},"文件。",[143,336,337],{},[266,338],{"alt":26,"src":339},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage69.webp",[143,341,342],{},"然后可以在代码中引用这个.h。",[143,344,345],{},"接着实现自己的代码功能就可以了。",[20,347,351],{"className":348,"code":349,"language":350,"meta":26,"style":26},"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",[28,352,353,362,369,376,383,387,420,425,436,440,445,450,461,477,481,486,502,506,511,522,527,541],{"__ignoreMap":26},[31,354,355,359],{"class":33,"line":34},[31,356,358],{"class":357},"szBVR","#include",[31,360,361],{"class":175}," \"QT6TEST\u002Finc\u002Fqt6_test.hpp\"\n",[31,363,364,366],{"class":33,"line":41},[31,365,358],{"class":357},[31,367,368],{"class":175}," \u003CQApplication>\n",[31,370,371,373],{"class":33,"line":47},[31,372,358],{"class":357},[31,374,375],{"class":175}," \u003CQWidget>\n",[31,377,378,380],{"class":33,"line":53},[31,379,358],{"class":357},[31,381,382],{"class":175}," \"ui_mywidget.h\"\n",[31,384,385],{"class":33,"line":59},[31,386,38],{"emptyLinePlaceholder":37},[31,388,389,392,395,399,401,405,408,411,414,417],{"class":33,"line":65},[31,390,391],{"class":357},"int",[31,393,394],{"class":171}," qt6_test",[31,396,398],{"class":397},"sVt8B","(",[31,400,391],{"class":357},[31,402,404],{"class":403},"s4XuR"," argc",[31,406,407],{"class":397},",",[31,409,410],{"class":357},"char",[31,412,413],{"class":357}," **",[31,415,416],{"class":403},"argv",[31,418,419],{"class":397},")\n",[31,421,422],{"class":33,"line":70},[31,423,424],{"class":397},"{\n",[31,426,427,430,433],{"class":33,"line":76},[31,428,429],{"class":397},"    QApplication ",[31,431,432],{"class":171},"app",[31,434,435],{"class":397},"(argc, argv);\n",[31,437,438],{"class":33,"line":81},[31,439,38],{"emptyLinePlaceholder":37},[31,441,442],{"class":33,"line":87},[31,443,444],{"class":166},"    \u002F\u002F 创建主窗口和 UI 对象\n",[31,446,447],{"class":33,"line":93},[31,448,449],{"class":397},"    QWidget mainWindow;\n",[31,451,452,455,458],{"class":33,"line":99},[31,453,454],{"class":171},"    Ui",[31,456,457],{"class":397},"::MyWidget ui;",[31,459,460],{"class":166},"        \u002F\u002F Ui 命名空间中的类名与 .ui 文件中的 class 属性一致\n",[31,462,463,466,469,471,474],{"class":33,"line":104},[31,464,465],{"class":397},"    ui.",[31,467,468],{"class":171},"setupUi",[31,470,398],{"class":397},[31,472,473],{"class":357},"&",[31,475,476],{"class":397},"mainWindow);\n",[31,478,479],{"class":33,"line":110},[31,480,38],{"emptyLinePlaceholder":37},[31,482,483],{"class":33,"line":116},[31,484,485],{"class":166},"    \u002F\u002F 设置窗口标题\n",[31,487,488,491,494,496,499],{"class":33,"line":122},[31,489,490],{"class":397},"    mainWindow.",[31,492,493],{"class":171},"setWindowTitle",[31,495,398],{"class":397},[31,497,498],{"class":175},"\"Hello Qt6!\"",[31,500,501],{"class":397},");\n",[31,503,504],{"class":33,"line":128},[31,505,38],{"emptyLinePlaceholder":37},[31,507,508],{"class":33,"line":134},[31,509,510],{"class":166},"    \u002F\u002F 显示窗口\n",[31,512,514,516,519],{"class":33,"line":513},19,[31,515,490],{"class":397},[31,517,518],{"class":171},"show",[31,520,521],{"class":397},"();\n",[31,523,525],{"class":33,"line":524},20,[31,526,38],{"emptyLinePlaceholder":37},[31,528,530,533,536,539],{"class":33,"line":529},21,[31,531,532],{"class":357},"    return",[31,534,535],{"class":397}," app.",[31,537,538],{"class":171},"exec",[31,540,521],{"class":397},[31,542,544],{"class":33,"line":543},22,[31,545,546],{"class":397},"}\n",[143,548,549],{},[266,550],{"alt":26,"src":551},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F10\u002Fimage70.webp",[143,553,554],{},"我这里有个配置好的QT6环境，你可以clone下来使用。",[143,556,557],{},[146,558,561],{"href":559,"rel":560},"https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002FQT%5C_Projects\u002Ftree\u002Fmain\u002FQT6\u002FQT6%5C_Template",[150],"https:\u002F\u002Fgithub.com\u002Ftungchiahui\u002FQT\\_Projects\u002Ftree\u002Fmain\u002FQT6\u002FQT6\\_Template",[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":26,"searchDepth":41,"depth":41,"links":567},[568,569,570,571],{"id":12,"depth":47,"text":13},{"id":238,"depth":47,"text":239},{"id":250,"depth":47,"text":251},{"id":316,"depth":47,"text":317},"8",8000000,"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\u002Fch8-qt-huan-jing-da-jian",{"title":5,"description":26},"wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch8-QT环境搭建","Hwa2aQaBpngrbXgkRJK7zyUhmrfTd0bjY60c31BdnTI",[586,592,598,604,610,616,622,628,629,635],{"path":587,"stem":588,"title":589,"date":574,"chapter":590,"chapterSort":591,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch1-c-c-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch1-C_C++环境搭建","C\u002FC++环境搭建","1",1000000,{"path":593,"stem":594,"title":595,"date":574,"chapter":596,"chapterSort":597,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch2-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch2-ARMKeilMDK(ARM单片机环境搭建)","ARM Keil MDK(ARM单片机环境搭建)","2",2000000,{"path":599,"stem":600,"title":601,"date":574,"chapter":602,"chapterSort":603,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch3-linux-ji-ben-pei-zhi","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch3-Linux基本配置","Linux基本配置","3",3000000,{"path":605,"stem":606,"title":607,"date":574,"chapter":608,"chapterSort":609,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch4-cmake-gong-cheng-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch4-CMake工程搭建","CMake工程搭建","4",4000000,{"path":611,"stem":612,"title":613,"date":574,"chapter":614,"chapterSort":615,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch5-opencv-cuda-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch5-OpenCV__CUDA环境搭建","OpenCV\\_CUDA环境搭建","5",5000000,{"path":617,"stem":618,"title":619,"date":574,"chapter":620,"chapterSort":621,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch6-yolo-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch6-YOLO环境搭建","YOLO环境搭建","6",6000000,{"path":623,"stem":624,"title":625,"date":574,"chapter":626,"chapterSort":627,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch7-ros-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch7-ROS环境搭建","ROS环境搭建","7",7000000,{"path":581,"stem":583,"title":5,"date":574,"chapter":572,"chapterSort":573,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},{"path":630,"stem":631,"title":632,"date":574,"chapter":633,"chapterSort":634,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"\u002Fwiki\u002F2023-12-10-dian-kong-shi-jue-huan-jing-da-jian\u002Fch9-docker-huan-jing-da-jian","wiki\u002F2023-12-10-电控视觉环境搭建\u002Fch9-Docker环境搭建","Docker环境搭建","9",9000000,{"path":576,"stem":636,"title":577,"date":574,"chapter":637,"chapterSort":638,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":37},"wiki\u002F2023-12-10-电控视觉环境搭建\u002Findex",null,0,1778666547093]