![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
qt
冬之晓东
国家对地观测科学数据中心信息发布
展开
-
多版本Qt程序的编译注意问题
今天研究了一下有些程序为啥在我的电脑上没法运行。经过一天的尝试,终于发现了问题所在。原来我的电脑里面为了兼容我以前的程序,下载了好多Qt版本,因此里面也包含了好多不同的编译器,其中有StrawBerry、Msvc、MinGW!今天我需要将一个Qt的第三方库导入到Qt里面,每次都不成功。 最后成功了,原来我的系统Path里面有一个编译器的路径,所以每次我用其他版本Qt进行Makefile文件原创 2016-08-04 12:15:22 · 4106 阅读 · 0 评论 -
使用Python进行层次聚类(二)——scipy中层次聚类的自定义距离度量问题
今天,总结一下如何使用层次聚类算法里面的自定义距离度量层次聚类上次已经总结过。 这次仅仅说明层次聚类的距离参数,这里的距离参数可以使用自定义函数。 我们进入该函数的文档页面 我们看到linkage的说明文档上面的函数scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean', optimal_orderin...原创 2018-04-06 15:36:44 · 9206 阅读 · 15 评论 -
学习pyqt(一)————简单介绍
对于PyQt5的编程,这个网站有一些简单的入门教程,非常不错,比如这个网站。 看完后,感觉使用PyQt5编写界面的程序真的是非常简单,跟我当年 直接用qt编程非常像,果然,以前学习qt的经验对于使用python的 qt模块来说非常有用。但是我感觉仅仅使用代码组合成的界面编程不能令我满足,只有 QML与PyQt5的联合编程才更有意思,于是我就研究了一下如何联合编程,完成了一个简单的QML ...原创 2018-04-02 18:40:38 · 1115 阅读 · 1 评论 -
Qt程序学习(二)------信号和槽的机制
对于Qt的界面开发来说,信号和槽是最重要的,其连接机理规则包含: - 一个信号可以连接多个槽 - 多个信号可以连接同一个槽 - 一个信号可以与另外一个信号相连 - 连接可以被移除第四个属性比较少用,因为删除对象时,Qt会自动移除和这个对象相关的所有连接。 在有了信号和槽的概念后,就看以进行简单的交互功能程序的编写,如下面这个例子:#include <QApplication>#inclu原创 2016-08-14 08:49:27 · 590 阅读 · 0 评论 -
Qt程序学习(三)------QTreeWidget、右键菜单、动态改变comboBox、QTreeWidgetItem的对应列的文字编辑
今天,我在进行Qt编程的时候,关于界面的编制遇到了一些问题,如果一个ComboBox控件的选项直接有关联的话,如何在已经选择的选项前面加上提示,如何动态的改变ComboBox,如何使用右键菜单。在读别人的代码的过程中发现了这些,特此记录一下,以防忘记。 为了将所有例子都在一个程序中表示出来,我设计一个简单的对话框,其特点是可以使用右键菜单进行增加条目,如图:也可以在对应的条目上右键进行删除,如图:原创 2016-08-21 22:52:06 · 9911 阅读 · 0 评论 -
使用QTcpSocket接收数据
最近,接到一个项目,是连接TCP后读取一个图片的数据,对方为了简化,直接发送数据的二进制格式,因此我必须连接后直接读取,然后在读取完成后进行保存。因为数据没有在开头加入大小信息,而TCP传输的时候并没有一次全部传输完成,只是默认传输一定量的数据,因此我必须时刻检验数据是否全部读取完毕,然后显示图片。最后,我没有想明白如何控制读取内容一次全部读取完成,只能使用笨办法,每次读取一段数据就将数据加入所有数原创 2017-04-05 10:35:24 · 21601 阅读 · 2 评论 -
Qt设置风格表单
最近编程的时候,我发现了,对于Qt来说,最简单的界面实现方法就是使用setStyleSheet函数!这个函数可以用描述性语言让界面变得漂亮!比如我想要在一个QTabWidget里面的一个标签里面的按钮按照我自己想要的方式显示,就可以使用下面的代码(假设一个tab我起的名字是tab_IO_configuration):ui->tab_IO_configuration->setStyleSheet("Q原创 2016-11-26 22:28:26 · 1003 阅读 · 0 评论 -
QMessageBox的常用方法用总结
普通用法QMessageBox是在编程中非常常用的一个类,特别是我们需要要几个小小的提示而又不需要太多的逻辑的对话框。这时,最简单的用法就是直接使用QMessageBox的静态方法生成对话框,对于一般只需要简单提示的情况下这样就够用了,举个例子:QMessageBox::information(this, tr("提示信息"), tr("与控制器异常连接"), QMessageBox::NoButt原创 2016-11-26 22:28:01 · 5088 阅读 · 0 评论 -
Qt程序学习(一)------pro文件的写法
pro文件简介pro文件是由Qt专门为了生成Makefile文件的一种文件,可以由qmake来编译。其目的是列举工程中包含的源文件。相比于自己写Makefile文件,pro文件语法简明,容易学习! 工程文件主要分为三种:app(单独的应用程序)、lib(静态和动态库)和subdirs(递归编译)。工程文件可以使用TEMPLATE变量指定: TEMPLATE = lib subdirs模板可以用原创 2016-08-11 13:14:35 · 951 阅读 · 0 评论 -
QsciScintilla的使用方法总结(一个很好用的文本编辑器库)
今天就整理一下Qt下使用qsciscintilla的心得吧。什么是qsciscintillaScintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。而QScintilla是Scinti原创 2016-09-25 11:26:32 · 31286 阅读 · 36 评论 -
Qt实现拖拽数据的功能
今天在进行Qt编程的时候,学习了一下如何自定义ui的样式,有时候,你在修改别人程序的时候,可能会发现别人程序中的某个控件ui设计是直接拖上去的。这种情况下如果你想增加该控件的事件处理,比如拖拽功能。不太好办,今天在书上找到一个方法,就是使用Qt设计师里面的提升,将需要增加事件响应的那个控件提升到一个类里面,然后自己实现里面相关的事件响应函数,今天我成功实现了一个QTreeWidget的提升,然后把里原创 2016-09-18 19:57:59 · 4111 阅读 · 0 评论 -
Qt绘图的相关使用方法(持续更新)
今天主要想复习并学习一下Qt的绘图功能,简单的二维绘图主要使用QPainter进行绘图,只要在任意QWidget内部重写paintEvent(QPaintEvent *)方法,并且内部使用QPainter进行绘图,就可以绘制一个图形,例如:void SimpleExampleWidget::paintEvent(QPaintEvent *){ QPainter painter(this);原创 2016-09-18 19:54:56 · 1894 阅读 · 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 · 1370 阅读 · 0 评论 -
Qt控件提示的使用方法和对QDialogButtonBox的理解
今天工作中遇到的问题: - Qt控件提示 Qt编写界面的时候,有时候需要进行提示,即鼠标悬浮在上时显示一下内容,提示客户需要进行什么样的操作。遇到这种问题,Qt有一个专门的属性tooltip,通过这个属性,输入的内容就可以在鼠标放在对应控件上显示提示内容啦!当然,对于QLineEdit这样的控件来说,如果当你没有输入的时候,或许需要有个提示,告诉客户不能为空,这时就可以用属性placehold原创 2016-09-18 19:49:58 · 9152 阅读 · 0 评论 -
Qt中正则表达式的使用
今天的工作中,遇到一个需求,就是界面的一个对话框中需要填入需求的字符串,因为如果填的字符串是随意的内容的话,下载到下位机上可能会使得下位机崩溃。因此我研究了一下Qt中的QLineEdit控件中使用正则表达式。首先查了一些文档,并且对此进行设置,发现只要新建一个QLineEdit后调用其中的QLineEdit::setValidator(const QValidator * v)即可。其中的QVali原创 2016-09-18 20:03:34 · 5637 阅读 · 0 评论 -
尽量使用安全的转换方式qobject_cast,少用强制转换
以前,我在使用C++编程的时候,总是忽略强制类型转换和安全的转换之间的区别,直到今天遇到这个问题,让我以后绝对要使用安全的转换方式,否则实在太坑了!今天遇到的问题是在实现一个动态界面的时候出现的。在使用QTreeWidget时,我需要根据一些数据设置每一个QTreeWidgetItem里面包含的QComboBox中的项目类型和数量。然后我需要知道当前选择的QComboBox到底属于哪个QTreeWi原创 2016-09-18 19:48:00 · 11554 阅读 · 0 评论 -
学习pyqt (二)————信号/槽&主次界面&主次线程编程经验总结
今天准备总结一下pyqt编写界面的经验,这样以后遇到同样问题就可以查看并且很快回忆起来!环境搭建经过一周的研究,我发现使用pyqt编写界面最快的方式还是eric + pycharm使用eric6和pycharm同时打开你正在编写的程序,需要界面编写就在eric6里面完成,需要调试并且找到某个变量的类型 时,就在pycharm里面设置断点,然后进行断点调试。主界面绘制经验...原创 2018-06-19 21:46:37 · 1363 阅读 · 0 评论