在CLion中使用Qt
来源:互联网 发布:windows phone 10安卓 编辑:程序博客网 时间:2024/05/16 02:05
做这件事的起因是因为自己要频繁的写ROS,有的应用难免需要采用图形界面编程,第一想到的肯定是Qt。然而qt使用自己的qmake进行管理,但ROS使用的是CMake。本文介绍了如何在CLion中配置使用qt4。
Qt编译框架
- Qt引用了信号和槽机制,因此在语法上对C++进行了部分扩充,qt提供了moc软件对代码进行预处理。
- Qt的ui文件需要用uic软件生成ui_filename.h文件供qt中的代码文件来引用。
CMakelist配置
有了上面的两条补充知识,具体操作也很清楚了。我们只要在传统CMakelists.txt上加上moc和uic操作即可。具体为如下两条:
QT4_WRAP_UI(UI widget.ui)QT4_WRAP_CPP(UI_CPP Widget.h)
处理后的文件名为UI和UI_CPP,在需要的地方引用即可。
实例
文件目录
.├── bin│ └── learn_qt_clion├── CMakeLists.txt├── main.cpp├── Widget.h└── widget.ui
CMakelist.txt
cmake_minimum_required(VERSION 3.6)project(learn_qt_clion)set(CMAKE_INCLUDE_CURRENT_DIR on)set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)find_package(Qt4 REQUIRED)include(${QT_USE_FILE})include_directories(${Qt4_INCLUDE_DIRECTORIES})include_directories(/usr/include)QT4_WRAP_UI(UI widget.ui)QT4_WRAP_CPP(UI_CPP Widget.h)set(SOURCE_FILES main.cpp ${UI_CPP})add_executable(learn_qt_clion ${SOURCE_FILES})target_link_libraries(learn_qt_clion ${QT_LIBRARIES} )
main.cpp
#include "Widget.h"int main(int argc, char* argv[]) { QApplication a(argc, argv); Widget w; w.setGeometry(500, 200, 320, 240); w.show(); return a.exec();}
Widget.h
//// Created by meng on 16-11-16.//#ifndef LEARN_QT_CLION_WIDGET_H#define LEARN_QT_CLION_WIDGET_H#include <QtGui/QtGui>#include <QtCore/QtCore>#include <QtCore/QObject>#include "ui_widget.h"class Widget : public QWidget { Q_OBJECTpublic: Widget(QWidget* parent = 0){ m_iCount = 0; ui.setupUi(this); connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(slotPushButton())); } ~Widget(){}private slots: void slotPushButton(){ ++m_iCount; ui.lineEdit->setText(QString::number(m_iCount)); }private: Ui::Form ui; int m_iCount;};#endif //LEARN_QT_CLION_WIDGET_H
运行结果
0 0
- 在CLion中使用Qt
- 在CLion中使用Qt
- 在CLion中添加Qt的工具,方便取代Qt Creator
- 在Clion中调试ROS程序
- CLion使用
- 各种工具使用学习说明(vs,qt,eclipse,clion)
- QT:在Qt中使用SQLite数据库
- 在CodeBlock中使用QT
- 在Qt中使用sleep
- 在Qt中使用sleep
- 在Qt中使用sleep
- 在Qt中使用sleep
- 在VS2008中使用Qt
- 在Qt中使用sleep
- 在Qt中使用sleep
- 在Qt中使用sleep
- Qt在VS2010中使用
- 在visualstudio中使用Qt
- iOS 自定义Cell按钮的点击代理事件
- 服务型CMDB的消费场景
- VS快捷键
- Mybatis中resultMap
- HDOJ2014
- 在CLion中使用Qt
- Android6.0蓝牙协议之OPP
- Html 字体大小单位 px em pt
- 数组指针
- AsyncTask的基本介绍
- com.android.builder.packaging.DuplicateFileException
- C语言中String库函数大全
- js中replace的用法
- 华为P8 电信青春版手机实现ssh登陆的方法