< >
Home » ROS与QT语言入门教程 » ROS与QT语言入门教程-调用对话框界面

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

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与qt语言入门教程, rosqt