当前位置: 首页 > news >正文

关于QTcreator,19年大学时写的文章了,之前写在印象笔记现在拉过来,往事如烟呐

1.初来乍到,先按照书本写一个基础列程理解一下原理。

这里创建工程的时候选择Qdialog基类,dialog.h头文件,并且勾选了创建界面
(勾选之后可以通过手动添加组块并且可以自生成他们的函数定义,如果没有勾选,就是默认选择手动代码编辑界面)

在左方Design选择喜欢的组块功能编辑:对PushButton进行功能编辑,右键选择Go to slot, 进入代码编辑状态
在这里插入图片描述

此时会自动产生一个函数,需要自己去编辑,想要回到原来的图形编辑状态,可以鼠标双击左边目录中的dialog.ui文件。

2.常用函数

在这里插入图片描述

1.connect函数
connect(小明,SIGNAL(valuechanged(int)),小黄,SLOT(setvalue(int)));
当小明(信号)发生变化(这里为监控valuechanged),小黄(槽),进行反应(这里是进行数据变动setvalue)。
2.
mainLayout->setMargin(30); //表示控件与窗体的左右边距
mainLayout->setSpacing(40); //表示各个控件之间的上下间距

3.当选择dialog的手动编辑界面时候,

如果定义了函数,可以通过右键快速向.cpp文件中添加定义。(如图所示)
在这里插入图片描述在这里插入图片描述
主要代码行数解析
14.设置mFindBtn为低亮(不可点击)状态
18.当mLineEdit有textChanged信号输入的时候,this(代表当前),onEnableFindBtn()函数执行,即高亮状态(可点击),估计onEnableFindBtn()编写为mFindBtn->setEnabled(enable);

4.通过点击界面启动ROS中启动.launch或者节点

system(“gnome-terminal -x bash -c 'source ~/Handcar_ws/devel/setup.bash; rosrun socket_ros socket_ros_node '&”);
5.关于显示中文出现乱码的问题

一般情况下我们对一个label设置文本属性的sh时候会ui->setText(“你好”);

然而下载到ARM开发平台上显示的时候却是乱码,原因是没有使用中文字符集,只要改成:

ui->setText(QString::fromUtf8(“你好”));即可正常显示
在这里插入图片描述
6.关于在父窗口中点击图标实现弹出新的消息对话框
首先添加inputdlg.h头文件
InputDlg *inputDlg;//添加实现对话框的类
void showInputDlg();
connect(a,SIGNAL(clicked()),this,SLOT(showInputDlg()));//事件关联
void Dialog(这是你编写槽函数的文件名)::showInputDlg()//槽函数实现
{

}
7.关于在UI界面修改点击的图标形状,利用fontawesome图标库
这是fontawesome的图标/代码对应网站,可以找到想要的图标添加进去
http://www.bootcss.com/p/font-awesome/design.html

如图所示,在我所使用的Uidemo界面工程下的image文件夹中,添加了fontawesome.ttf文件,添加了这个文件之后就可以使用其中的图标了。
在这里插入图片描述
应用实例

如上图所示,0xf031(一个A字图标)图标对应的是“启动RVIZ”这一栏
在这里插入图片描述
8.Qt重装
ubuntu16.04下通过sudo apt安装的qtcreator是默认4.8的,4版本和5版本不尽相同
download.qt.io/archive/qt/
这是下载地址,首先用sudo apt-get remove qtcreator把原来的QT删除掉,再下载就行了
9.关于QT5.12版本无法输入中文的问题
此链接完美解决https://blog.csdn.net/amusi1994/article/details/78147696
10.QT的不同主机的socket通信
客户端

我在connect中用click发生上面这个槽函数
socket->connectToHost(_ip,_port);
这是连接函数;
QT

10.通过新打开的终端关闭已打开的终端
既然有通过socket开启不同主机进程的功能,那么当然要设置远程关闭的功能
:通过新终端关闭之前打开的正在运行的终端
这时候请观看关于linux下杀死进程的方法大全
https://blog.csdn.net/andy572633/article/details/7211546
其中比较方便使用的一种方法如下 在这里插入图片描述
11.QT socket通信
(client)
主是发送数据的部分
一开始的时候没有写 socket=new QTcpSocket(this);创建套接字对象,出现了发送数据后界面闪退的情况。

相关文章:

  • C#面:详细阐述什么是 DTO
  • 什么是数字化,什么是数智化?数字化与数智化的区别和联系
  • BT音频方案
  • 央国企财务专家的“专家课”——中国总会计师协会联合实在智能举办RPA专项培训
  • web标准与浏览器前缀
  • GANs网络在图像和视频技术中的应用前景
  • springboot中maven的使用教程
  • Qt 实战(4)信号与槽 | 4.1、信号与槽机制
  • 切换到root用户的方法和区别
  • Linux 编写脚本自动清理旧的日志文件,释放磁盘空间
  • 图论之岛屿系列
  • QGraphicsItem 自定义是否被选中
  • 人体接近传感器,ATM微波传感器,人体存在传感器 微波探测器YTMW8631
  • Python办公自动化—pandas读取Excel进行插入列、修改列的类型,apply函数与字典结合匹配等操作+完整代码
  • leetcode 二分查找·系统掌握 寻找比目标字母大的最小字母
  • 【Leetcode】104. 二叉树的最大深度
  • CSS盒模型深入
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • MD5加密原理解析及OC版原理实现
  • Python实现BT种子转化为磁力链接【实战】
  • Travix是如何部署应用程序到Kubernetes上的
  • 阿里云购买磁盘后挂载
  • 初识 beanstalkd
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 从伪并行的 Python 多线程说起
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 排序算法学习笔记
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 实习面试笔记
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​插件化DPI在商用WIFI中的价值
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #pragma pack(1)
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (void) (_x == _y)的作用
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)JAVA使用POI操作excel
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (十三)Maven插件解析运行机制
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)重识new
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • ../depcomp: line 571: exec: g++: not found
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET/C# 获取一个正在运行的进程的命令行参数