QT学习-小结
2017-04-08 15:09
555 查看
初衷:最近大BOSS逼着自己做个QT界面,无奈实验室没有人会做前端,看来自己只好来填这个坑,把前端的知识也总结一下
复选框CheckBox
bool isCheck() const
void stateChanged
Text Browser这个控件可以编辑大段文本
这里可以设置字体和光标的样式
这里可以设置一些复选框的图标
QToolButton
在这个地方显示,上面是图标,下面是文本:
这样就变成了一个浮动按钮:
遇到的问题,qt里面没有qrc这个文件夹,然后参考这个人的博客,解决了这个问题;
http://www.cnblogs.com/cszlg/p/3234786.html
最后注意选择release版本,不用debug版本
扩展:在qt里面的可以选择一按一起的模式,也即是toggle模式
Qlabel
在Qlabel里面设置对齐方式:
这里设置的可以自动换行:
往Qlabel当中添加图片
这是缩放显示:
在qtcreator当中添加另外的一个ui
定时器
在主界面当中,我们希望实现的功能:每隔3秒保存一次
使用多线程进行编程
添加多线程编程
用于打开打开一个文件,并且把里面的参数传递进去
MainWindow
只有QMainWindow才有菜单的工具栏
添加action
QAction
我们直接将定义好的action拖拽进去
原因是:只有函数的声明,没有函数的定义
设置机器人的图标:
效果:
代码:
另外给pushbutton添加图片:
快速配置信号和槽机制
按F4开始配置信号和槽机制
在这个里面argc 和*argv[]表示在终端运行,argc表示终端下的参数个数,argv表示终端参数的内容
产生对话框:
模态的:就是可以无限制打开的对话
new一个对话框
非模态对话框
实例化:
由于用system只能在对话框中实现一个ros命令,这个也太不实用了吧,因为我们在实际的使用的时候,需要启动多个launch文件,或者说,要让一些launch保持运行。然后就有了下面的这些程序:
感谢燕大的赵大神的鼎力相助啊,哈哈。这个就实用多了,。想当初真是很崇拜RGB-DSLAM的作者,能够吧点云拼接的东西集成到QT的界面,有空真的应该读一读源码,然后顺便做一个出来。
我找了个不错的界面:展示一下:
、
2017-08-17-补充:
通过运行一个ros的节点,能够弹出一个QT的界面。
参看roswiki上的链接:
http://wiki.ros.org/qt_create/Tutorials/Qt%20App%20Templates
http://wiki.ros.org/qt_create
将这个包放到你的工作区间当中
复选框CheckBox
bool isCheck() const
void stateChanged
Text Browser这个控件可以编辑大段文本
这里可以设置字体和光标的样式
这里可以设置一些复选框的图标
QToolButton
在这个地方显示,上面是图标,下面是文本:
这样就变成了一个浮动按钮:
遇到的问题,qt里面没有qrc这个文件夹,然后参考这个人的博客,解决了这个问题;
http://www.cnblogs.com/cszlg/p/3234786.html
最后注意选择release版本,不用debug版本
扩展:在qt里面的可以选择一按一起的模式,也即是toggle模式
Qlabel
在Qlabel里面设置对齐方式:
这里设置的可以自动换行:
往Qlabel当中添加图片
这是缩放显示:
在qtcreator当中添加另外的一个ui
定时器
在主界面当中,我们希望实现的功能:每隔3秒保存一次
virtual void timeEvent(QTimerEvent *event);
使用多线程进行编程
添加多线程编程
用于打开打开一个文件,并且把里面的参数传递进去
启动线程: Mytask* m_task=new MyTask(); my_task->start(); 回收线程: my_task->wait();
MainWindow
只有QMainWindow才有菜单的工具栏
添加action
QAction
我们直接将定义好的action拖拽进去
制作ROS的界面
遇到的问题:原因是:只有函数的声明,没有函数的定义
设置机器人的图标:
效果:
代码:
#include "widget.h" #include "ui_widget.h" #include<QPixmap> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QPixmap mymap(":/image/image/robot");//这里的路径要写对。第一个写image.qrc当中的image,第二个写image当中的prefix,第三个就是图片的名字 setWindowIcon(mymap); } Widget::~Widget() { delete ui; }
另外给pushbutton添加图片:
快速配置信号和槽机制
按F4开始配置信号和槽机制
int main(int argc, char *argv[])
在这个里面argc 和*argv[]表示在终端运行,argc表示终端下的参数个数,argv表示终端参数的内容
产生对话框:
模态的:就是可以无限制打开的对话
new一个对话框
QDialog *dig=new QDialog; dig->show();
非模态对话框
实例化:
QDialog dig2; dig2.exec();
由于用system只能在对话框中实现一个ros命令,这个也太不实用了吧,因为我们在实际的使用的时候,需要启动多个launch文件,或者说,要让一些launch保持运行。然后就有了下面的这些程序:
#include "qt03.h" #include "ui_qt03.h" #include<QPixmap> #include<QString> #include<QProcess> qt03::qt03(QWidget *parent) : QMainWindow(parent), ui(new Ui::qt03) { ui->setupUi(this); // setWindowFlags(Qt::Window|Qt::FramelessWindowHint); QPixmap mymap(":/image/image/robot"); setWindowIcon(mymap); connect(ui->start_robot,SIGNAL(clicked()),this,SLOT(on_start_robot_clicked())); connect(ui->send_robot,SIGNAL(clicked()),this,SLOT(on_send_robot_clicked())); connect(ui->send_home,SIGNAL(clicked()),this,SLOT(on_send_home_clicked())); } qt03::~qt03() { delete ui; } void qt03::on_start_robot_clicked() { QString prog1="roslaunch"; QStringList arg1; arg1<<"usb_cam"<<"usb_cam-test.launch"; QProcess *proc1=new QProcess; proc1->start(prog1,arg1); } void qt03::on_send_robot_clicked() { QString prog2="rosrun"; QStringList arg2; arg2<<"rviz"<<"rviz"; QProcess *proc2=new QProcess; proc2->start(prog2,arg2); } void qt03::on_send_home_clicked() { QString prog3="rosrun"; QStringList arg3; arg3<<"rviz"<<"rviz"; QProcess *proc3=new QProcess; proc3->start(prog3,arg3); }
感谢燕大的赵大神的鼎力相助啊,哈哈。这个就实用多了,。想当初真是很崇拜RGB-DSLAM的作者,能够吧点云拼接的东西集成到QT的界面,有空真的应该读一读源码,然后顺便做一个出来。
我找了个不错的界面:展示一下:
、
2017-08-17-补充:
通过运行一个ros的节点,能够弹出一个QT的界面。
参看roswiki上的链接:
http://wiki.ros.org/qt_create/Tutorials/Qt%20App%20Templates
http://wiki.ros.org/qt_create
将这个包放到你的工作区间当中
git clone https://github.com/stonier/qt_ros.git[/code]
编译之后,就可以
http://blog.csdn.net/zhangrelay/article/details/52245159
记得要source一下工作区间,不然不出不来这个catkin_create_qt_pkg
这个里面是有一些源码的。你可以通过这个里面的源码来进行学习。
相关文章推荐
- Qt之QFlags及相关宏学习小结
- 7.6 QT学习小结(二)
- Qt学习小结(部分)
- QT moc 学习小结
- 7.5 QT学习小结(三)
- Qt学习小结(未完)
- Qt学习之XML读写操作小结
- QT学习小结之信号与槽
- Qt学习资料小结
- Qt可视化-QTableWidget学习小结
- 一步步学Qt,第五天-Qt学习小结-Qt工作机制
- 一步步学Qt,第五天-Qt学习小结-Qt工作机制
- QT学习小结(一)
- QT学习小结之鼠标事件
- Qt之QFlags及相关宏学习小结
- Qt学习之XML读写操作小结
- Qt学习之XML读写操作小结 转
- 7.7 QT学习小结(一)
- 杜教筛 学习小结
- QT学习笔记----QT多窗口编程