ROS与QT语言入门教程-调用对话框界面
ROS与QT语言入门教程-调用对话框界面
说明
- 在ROS QT GUI模板的基础上,实现点击按钮,调用一个对话框dialog
创建对话框dialog步骤
- 在src目录栏,右击鼠标
- 选择
Add New...
->Qt
->Qt Designer from Class
->Dialog without Buttons
修改CmakeLists.txt文件
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/ddialog/*.hpp *.h)
ui界面
main_window.ui
文件:拖入一个按钮控件,将对象名改为dialog_button
manualdialog.ui
文件:拖入五个按钮控件,将对象名改为back,up,down,left,right
编写窗口
main_window.hpp
头文件
#include "manualdialog.h"
void on_dialog_button_clicked();
代码解释:
- 在主窗口中包含对话框的头文件
main_window.cpp
源代码
#include "../include/ddialog/manualdialog.h"
MainWindow::MainWindow(int argc, char** argv, QWidget *parent)
: QMainWindow(parent)
, qnode(argc,argv)
{
QObject::connect(ui.dialog_button, SIGNAL(clicked()), this, SLOT(pub_cmd()));
}
void MainWindow::on_dialog_button_clicked()
{
manualdialog* dlg = new manualdialog();
dlg->exec();
}
代码解释:
- 使用connect()函数,连接信号与槽
编写对话框
manualdialog.h
#include "qnode.hpp"
namespace ddialog {
class QNode;
}
public Q_SLOTS:
void on_back_clicked();
private:
ddialog::QNode *qnode;
代码解释:
- 进行前置声明,并且声明一个qnode
manualdialog.cpp
void manualdialog::on_back_clicked()
{
this->close();
}
编译运行
参考资料
https://blog.csdn.net/qq_30460905/article/details/79034633
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号