工作总结
冬之晓东
国家对地观测科学数据中心信息发布
展开
-
尽量使用安全的转换方式qobject_cast,少用强制转换
以前,我在使用C++编程的时候,总是忽略强制类型转换和安全的转换之间的区别,直到今天遇到这个问题,让我以后绝对要使用安全的转换方式,否则实在太坑了!今天遇到的问题是在实现一个动态界面的时候出现的。在使用QTreeWidget时,我需要根据一些数据设置每一个QTreeWidgetItem里面包含的QComboBox中的项目类型和数量。然后我需要知道当前选择的QComboBox到底属于哪个QTreeWi原创 2016-09-18 19:48:00 · 11602 阅读 · 0 评论 -
Qt设置风格表单
最近编程的时候,我发现了,对于Qt来说,最简单的界面实现方法就是使用setStyleSheet函数!这个函数可以用描述性语言让界面变得漂亮!比如我想要在一个QTabWidget里面的一个标签里面的按钮按照我自己想要的方式显示,就可以使用下面的代码(假设一个tab我起的名字是tab_IO_configuration):ui->tab_IO_configuration->setStyleSheet("Q原创 2016-11-26 22:28:26 · 1012 阅读 · 0 评论 -
QMessageBox的常用方法用总结
普通用法QMessageBox是在编程中非常常用的一个类,特别是我们需要要几个小小的提示而又不需要太多的逻辑的对话框。这时,最简单的用法就是直接使用QMessageBox的静态方法生成对话框,对于一般只需要简单提示的情况下这样就够用了,举个例子:QMessageBox::information(this, tr("提示信息"), tr("与控制器异常连接"), QMessageBox::NoButt原创 2016-11-26 22:28:01 · 5102 阅读 · 0 评论 -
数字/模拟输入输出相关的传感器
总结一下最近学到的东西:数字输入相关的元件光纤传感器:当反射物体的反射光强变化时,出现一个DI信号,比如海绵上料的地方。 漫反射传感器:灵敏度低于光纤传感器,当物体接近时,出现一个DI信号,比如抓取隔音棉的爪子上面。磁开:安装在气缸的夹缝处,当控制气缸的活塞上磁铁接近时会出现一个DI信号。比如控制气爪张开和缩回的地方。接近传感器:当磁力物件接近时,出现一个DI信号。比如检查气缸是否升起的地方。对射原创 2016-11-15 15:02:03 · 2284 阅读 · 0 评论 -
注意事项
平常编程时发现的一下问题,记录下来,随时查看: 1. 设置系统环境变量的时候,不要重复使用变量两次。原创 2016-12-10 11:15:37 · 608 阅读 · 1 评论 -
QsciScintilla的使用方法总结(一个很好用的文本编辑器库)
今天就整理一下Qt下使用qsciscintilla的心得吧。什么是qsciscintillaScintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。而QScintilla是Scinti原创 2016-09-25 11:26:32 · 31651 阅读 · 36 评论 -
Qt实现拖拽数据的功能
今天在进行Qt编程的时候,学习了一下如何自定义ui的样式,有时候,你在修改别人程序的时候,可能会发现别人程序中的某个控件ui设计是直接拖上去的。这种情况下如果你想增加该控件的事件处理,比如拖拽功能。不太好办,今天在书上找到一个方法,就是使用Qt设计师里面的提升,将需要增加事件响应的那个控件提升到一个类里面,然后自己实现里面相关的事件响应函数,今天我成功实现了一个QTreeWidget的提升,然后把里原创 2016-09-18 19:57:59 · 4125 阅读 · 0 评论 -
Qt绘图的相关使用方法(持续更新)
今天主要想复习并学习一下Qt的绘图功能,简单的二维绘图主要使用QPainter进行绘图,只要在任意QWidget内部重写paintEvent(QPaintEvent *)方法,并且内部使用QPainter进行绘图,就可以绘制一个图形,例如:void SimpleExampleWidget::paintEvent(QPaintEvent *){ QPainter painter(this);原创 2016-09-18 19:54:56 · 1915 阅读 · 0 评论 -
Qt容器的相关使用方法(持续更新)
今天,主要看了一下Qt的容器,发现原来Qt的容器在进行操作的时候,既可以使用java的风格也可以使用C++的风格,同时还通过“引用计数”的方式实现了“写时复制”的功能。真的是太强大了。比如说遍历一个QList容器,可以使用如下两个风格的方式进行:Java风格 QList<int> ql; ql<<1<<2<<3; QListIterator<int> i(ql); whi原创 2016-09-18 19:55:40 · 1383 阅读 · 0 评论 -
window10系统的电脑有时候搜索不到UDP广播的问题
第一天: 今天真的是太悲剧了,公司刚刚配置一台安装有window10系统的电脑,我准备在上面运行程序,可是每次运行的时候都接收不到UDP数据,这可是非常糟糕的一件事情。因为这样证明我的程序没有通用性,因此我决定要解决这一问题。在网上怎么搜都没有搜到答案,于是我尝试:卸载杀毒软件设置防火墙同意软件连接关闭防护墙重置系统整了一天,最后发现每次重置系统后就能够连接,但是过一会重启电脑又不能连接原创 2016-09-25 19:18:17 · 10020 阅读 · 3 评论 -
Qt控件提示的使用方法和对QDialogButtonBox的理解
今天工作中遇到的问题: - Qt控件提示 Qt编写界面的时候,有时候需要进行提示,即鼠标悬浮在上时显示一下内容,提示客户需要进行什么样的操作。遇到这种问题,Qt有一个专门的属性tooltip,通过这个属性,输入的内容就可以在鼠标放在对应控件上显示提示内容啦!当然,对于QLineEdit这样的控件来说,如果当你没有输入的时候,或许需要有个提示,告诉客户不能为空,这时就可以用属性placehold原创 2016-09-18 19:49:58 · 9190 阅读 · 0 评论 -
Qt使用UDP搜索同一个网段上一个组播的多个服务器数据和QUdpSocket的使用经验
今天在工作工作中遇到的问题时网络连接的问题,普通的客户端网络连接用Qt实现很简单,就是新建一个QTcoSocket/QUdpSocket,然后输入端口号和ip地址,建立三个信号和槽(连接、断开、读取)实现对应的槽函数即可。但是今天遇到的问题要求是在同一个网络里面有好的服务器,而且每一个服务器发送的UDP的IP地址和端口号相同,唯一识别它们不同的地方在于连接上UDP后发送的数据里面有TCP的地址,每一原创 2016-09-18 20:02:54 · 3715 阅读 · 0 评论 -
Qt中正则表达式的使用
今天的工作中,遇到一个需求,就是界面的一个对话框中需要填入需求的字符串,因为如果填的字符串是随意的内容的话,下载到下位机上可能会使得下位机崩溃。因此我研究了一下Qt中的QLineEdit控件中使用正则表达式。首先查了一些文档,并且对此进行设置,发现只要新建一个QLineEdit后调用其中的QLineEdit::setValidator(const QValidator * v)即可。其中的QVali原创 2016-09-18 20:03:34 · 5662 阅读 · 0 评论 -
Qt事件处理的使用方法
总结一下今天工作中学到的要点:今天在工作中,主要遇到了一个事件相关的问题,就是我在编写一个Qt控件的时候,想要为这个控件增加一个事件处理!这里用到了Qt的事件处理模块。一般常用的按钮QPushButton控件本身就有单击事件,因此只要单击就会触发clicked信号,但是如果我想要给QLabel这种控件增加一个单击事件怎么办呢,这时就可以继承一下QLabel,然后为其内部实现mousePressEve原创 2016-09-18 19:52:47 · 1914 阅读 · 0 评论 -
Linux虚拟机的安装和使用
今天在工作中学到的东西: - 虚拟机的安装和使用 今天学到的第一个知识就是会使用虚拟机了,其实也很简单,就是下载一个软件,这里是下载地址。我选择的是Windows 64位的,然后安装。之后加载一个系统。这个系统是直接从别人那拷贝过来的Ubuntu系统,暂时还没有深入研究,以后有机会会仔细研究的。这里需要注意一点:为了让电脑能够加载虚拟机,要在电脑开机进入的BIOS下面将虚拟化标签由disabl原创 2016-09-18 19:50:43 · 333 阅读 · 0 评论