[{"data":1,"prerenderedAt":639},["ShallowReactive",2],{"wiki-page-/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian":3,"wiki-doc-items-/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian":586},{"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,"layout":580,"meta":581,"navigation":37,"path":582,"seo":583,"stem":584,"wikiDepth":34,"__hash__":585},"content/wiki/2023-12-10-电控视觉环境搭建/ch8-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://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环境配置","VScode环境配置",[143,241,242,243],{},"主要是CMake搭建QT5/QT6开发环境，详看",[146,244,247],{"href":245,"rel":246},"https://sdutvincirobot.feishu.cn/wiki/Dosvw46BtiBBLEkTdO4cPOt8nVb",[150],"CMake C/C++编译环境配置",[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/C++工程。",[143,264,265],{},[266,267],"img",{"alt":26,"src":268},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image62.webp",[143,270,271],{},"比如我们创建一个Helloworld窗口，打开QT Designer之后，选择创建Widget。",[143,273,274],{},[266,275],{"alt":26,"src":276},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image63.webp",[143,278,279],{},"拖进来，输入Hello World！",[143,281,282],{},[266,283],{"alt":26,"src":284},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image64.webp",[143,286,287],{},"可以调字体大小。",[143,289,290],{},[266,291],{"alt":26,"src":292},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image65.webp",[143,294,295],{},"可以修改objectName，即是C++代码里调用的类名称。",[143,297,298],{},[266,299],{"alt":26,"src":300},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image66.webp",[143,302,303],{},"最后保存.ui文件，一般是保存在功能包下的form文件夹下。",[143,305,306],{},[266,307],{"alt":26,"src":308},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image67.webp",[143,310,311],{},[266,312],{"alt":26,"src":313},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image68.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/QT6/QT6_Template/build/src/QT6TEST/目录下会出现",[28,333,261],{},"文件。",[143,336,337],{},[266,338],{"alt":26,"src":339},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image69.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/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,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/inc/qt6_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},"    // 创建主窗口和 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},"        // 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},"    // 设置窗口标题\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},"    // 显示窗口\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://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/10/image70.webp",[143,553,554],{},"我这里有个配置好的QT6环境，你可以clone下来使用。",[143,556,557],{},[146,558,561],{"href":559,"rel":560},"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",[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","/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian","电控视觉环境搭建","md",false,null,{},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch8-qt-huan-jing-da-jian",{"title":5,"description":26},"wiki/2023-12-10-电控视觉环境搭建/ch8-QT环境搭建","Ct_0dBSnvMsNbfVOPbjE8Qhg18pnBZmJlSKc_k6WLAI",[587,593,599,605,611,617,623,629,630,636],{"path":588,"stem":589,"title":590,"date":574,"chapter":591,"chapterSort":592,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch1-c-c-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch1-C_C++环境搭建","C/C++环境搭建","1",1000000,{"path":594,"stem":595,"title":596,"date":574,"chapter":597,"chapterSort":598,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch2-armkeilmdk-arm-dan-pian-ji-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch2-ARMKeilMDK(ARM单片机环境搭建)","ARM Keil MDK(ARM单片机环境搭建)","2",2000000,{"path":600,"stem":601,"title":602,"date":574,"chapter":603,"chapterSort":604,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch3-linux-ji-ben-pei-zhi","wiki/2023-12-10-电控视觉环境搭建/ch3-Linux基本配置","Linux基本配置","3",3000000,{"path":606,"stem":607,"title":608,"date":574,"chapter":609,"chapterSort":610,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch4-cmake-gong-cheng-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch4-CMake工程搭建","CMake工程搭建","4",4000000,{"path":612,"stem":613,"title":614,"date":574,"chapter":615,"chapterSort":616,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch5-opencv-cuda-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch5-OpenCV__CUDA环境搭建","OpenCV\\_CUDA环境搭建","5",5000000,{"path":618,"stem":619,"title":620,"date":574,"chapter":621,"chapterSort":622,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch6-yolo-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch6-YOLO环境搭建","YOLO环境搭建","6",6000000,{"path":624,"stem":625,"title":626,"date":574,"chapter":627,"chapterSort":628,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch7-ros-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch7-ROS环境搭建","ROS环境搭建","7",7000000,{"path":582,"stem":584,"title":5,"date":574,"chapter":572,"chapterSort":573,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},{"path":631,"stem":632,"title":633,"date":574,"chapter":634,"chapterSort":635,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":579},"/wiki/2023-12-10-dian-kong-shi-jue-huan-jing-da-jian/ch9-docker-huan-jing-da-jian","wiki/2023-12-10-电控视觉环境搭建/ch9-Docker环境搭建","Docker环境搭建","9",9000000,{"path":576,"stem":637,"title":577,"date":574,"chapter":580,"chapterSort":638,"docKey":575,"docRoot":576,"docTitle":577,"isWikiDoc":37,"isWikiIndex":37},"wiki/2023-12-10-电控视觉环境搭建/index",0,1778560330834]