
qt
wb175208
这个作者很懒,什么都没留下…
展开
-
QCustomPlot 绘制曲线
【代码】QCustomPlot 绘制曲线。原创 2023-02-01 15:39:59 · 835 阅读 · 0 评论 -
qt opengl 使用不同的颜色绘制线框三角形
代码】qtopengl使用不同的颜色绘制相框三角形。原创 2022-07-27 22:27:02 · 899 阅读 · 0 评论 -
Qt opengl 让物体在关照下动起来,形成动画
代码】Qtopengl让物体在关照下动起来,形成动画。原创 2022-07-27 10:57:50 · 518 阅读 · 0 评论 -
Qt OPenGL 光的漫反射
代码】QtOPenGL光的漫反射。原创 2022-07-26 23:15:13 · 463 阅读 · 0 评论 -
QT openGL环境光照
使用环境光非常的简单,我们只需要设置一个环境光强度,用这个强度值乘上光源的颜色得到环境光颜色。最后,用环境光颜色乘上物体的颜色,得到物体在光照下的最终颜色值。原创 2022-07-18 23:20:19 · 648 阅读 · 0 评论 -
Qt Opengl 给两个立方体设置两中不同颜色
当一个场景中有很多立方体时,分别对每一个立方体使用不同的颜色,那么此时使用一个着色器就不行了,一个着色器只能给场景中的图形添加一种颜色,要想是实现不同的物体绘制不同的颜色,就要使用多个着色器程序,先看效果一个白色立方体代表光照,一个蓝色的立方体代表光照效果。...原创 2022-07-18 22:28:02 · 661 阅读 · 0 评论 -
Qt OpenGL 通过鼠标和键盘移动三维物体(设置相机)
顶点着色器:片段着色器:aaa原创 2022-07-13 23:36:37 · 1326 阅读 · 0 评论 -
使用QT设计飞机编队的功能
国庆阅兵的时候,战斗机组成各种编队一起飞过天安门的场景很是壮观,让国人振奋。我们使用软件把编队的方式绘制出来,更加直观的展现给大家。在一个编队中一般会有一架长机和多架僚机,长机一般处于编队居中或者靠前的位置,而僚机在会在长机的周围,编队的图形一般是对称。软件实现了以下功能:VS2010 + QT4.8.6 + x64以上功能使用Qt的GraphicsView和GraphicsScene、GraphicsItem绘制完成,GraphicsScene用来绘制场景,GraphicsView用来展示。每种类型的飞原创 2022-06-12 11:38:13 · 1423 阅读 · 0 评论 -
VS2010编译Qt4.8.6_x64
Qt4.8.6在官网上只可以下载到32位的,如果实际中需要64位的需要把源码手动编译成64位的。1. 把下载到的源码qt-everywhere-opensource-src-4.8.6.zip,解压到:C:\Qt\4.8.6_x64下面2. 找到VS2010下面的64位的命令行提示工具输入两行命令:set QTDIR=C:\Qt\4.8.6_x64set QMAKESPEC=win32-msvc20103. 修改Qt4.8.6源码中的一些问题第一处修改:打开文件C:\Qt\4.8.6原创 2021-11-11 17:15:52 · 2114 阅读 · 2 评论 -
QT C++调用PyQt5
1.新建Python项目使用QtDesigner设计界面使用PyUIC把设计的界面转换成py文件编写业务代码和Ui文件结合起来SetTextStyleMainWindow.pyimport sysfrom SetTextStyle import Ui_SetTextStylefrom PyQt5.QtWidgets import QMainWindow, QApplication, QCheckBox, QSpinBoxfrom PyQt5.QtGui import QPen, QPal原创 2021-08-20 16:46:02 · 2380 阅读 · 1 评论 -
VS2015调用Python3.7.1_x64 PyQt5_5.10
1.下载Python3.7.1,之所以下载这个版本,这个版本可以支持VS2015的调试Python3.7.1下载2.下载完成之后,开始安装3.使用新建一个Qt控制台程序首先配置环境:添加包含路径:配置包含库目录:配置库文件:#include "Python.h"#include <QtCore/QCoreApplication>int main(int argc, char *argv[]) { QCoreApplication a(argc, argv);原创 2021-08-16 12:40:02 · 638 阅读 · 0 评论 -
Qt中信号槽连接方式Qt::QueuedConnection了解
大家都知道Qt中信号槽的连接方式有五种:其中Qt::QueuedConnection就是其中之一,他主要就使用在不同线程中,当两个线程中处理数据的速度不一致的时候,使用这种连接方式,可以提供用户的使用体验。Qt::QueuedConnection:使用队列的连接方式,在不同的线程中,信号的发出对象和槽函数的接收对象分别在不同的线程中,数据处理过程在工作线程中,数据展示在主线程中。这时需要把处理完成的数据在界面上显示出来,就需要通过信号槽的方式把处理完成的数据展示出来。#pragma once#inc原创 2021-08-12 17:14:57 · 16166 阅读 · 3 评论 -
Qt调用OSGEarth出现的崩溃问题
在QT5.10中调用OSG,代码已经添加上去了,编译和链接都没有问题,但是运行的时候出现了崩溃。崩溃的位置和信息如下:调用堆栈信息如下:解决方案:生成可执行文件(*.exe)工程中修改工作目录,修改为exe生成的工作目录原来的:修改为:...原创 2021-06-25 08:45:49 · 880 阅读 · 0 评论 -
QT自定义Tab标签页,可以删除、添加、修改和选中
先看效果:部分源码#pragma once#include <QWidget>#include <vector>#include "ui_QtGuiTrapeTabBar.h"#include "ITrapeTab.h"#include "ITrapeTabAdd.h"//梯形标签class QtGuiOneTrape;class QtGuiTrapeTabBar : public QWidget , public ITrapeTab , pub原创 2021-05-12 15:15:58 · 3868 阅读 · 7 评论 -
Qt自定义时间规划进度条
先看几张效果图:可以任意拖动时间轨道可以任意缩放时间轨道,缩放级别20级拖动树形节点到时间进度条上,并且可以自由添加时间的长短拖动时间的位置部分类图普通轨道类:#pragma once#include <QGraphicsItem>//基础Item,可以绘制背景色统一宽度等class PlanItem : public QGraphicsItem {public: PlanItem(QGraphicsItem* parent = nullptr);原创 2021-04-16 17:09:13 · 1294 阅读 · 2 评论 -
Qt程序修改可执行程序的图标
1.环境:VS2015+QT5.102.设置鼠标邮件点击项目添加ICON资源鼠标邮件点击.rc文件选择文本编辑器,打开之后把里面的内容全部清空,然后添加一行(名称根据实际情况修改):IDI_ICON1 ICON "Resources\\Icon\\main1.ico"3. 把对应的图标文件.ico放到Resources\Icon下面即可,如果项目没有文件夹Resources\Icon的话,需要收到创建这个文件夹。原创 2021-03-31 12:15:05 · 433 阅读 · 0 评论 -
QTreeWidget带有CheckBox实现父子节点之间的联动选中
带有CheckBox的树形控件,在点选CheckBox的时候,需要与父节点和子节点进行联动选择。网上有很多通过重写控件的形式来实现,通过自己的实践,发现有两种更简单的方式可以实现:一、静态法在静态创建控件的时候,在编辑每一节点的时候都要勾选上以下两项,这样就可以了二、动态法动态创建QTreeWidget节点的时候需要给每个节点添加上属性 Qt::ItemIsAutoTristate QTreeWidgetItem* subItem13 = new QTreeWidgetItem(subIt原创 2021-03-31 11:21:33 · 3671 阅读 · 0 评论 -
Qt 自定义QWidget中区分鼠标单击和双击
定义了一个控件,继承自QWidget,但是在使用鼠标单击和双击事件的时候,出现了问题:#pragma once#include <QWidget>#include "ui_UserButton.h"//用户自定义按钮class UserButton : public QWidget { Q_OBJECTpublic: UserButton(QWidget *parent = Q_NULLPTR); ~UserButton();private: QSize size原创 2021-03-30 11:25:21 · 6054 阅读 · 5 评论 -
Qt 动态可以扩展的按钮
先看效果图:实现的功能:用户可以动态添加按钮;按钮在鼠标的移动、点击时按钮有立体的效果展示;双击鼠标左键可以修改按钮的文字;点击按钮右上角的关闭按钮可以直接删除当前按钮。定义按钮的各种状态下的颜色#pragma once#include <QColor>#include <QWidget>//基类class BaseTabBarBtn: public QWidget { Q_OBJECTpublic: BaseTabBarBtn(QWidget原创 2021-03-26 23:21:27 · 898 阅读 · 0 评论 -
Qt编写1024游戏
一、游戏演示手机上经典的1024游戏,通过Qt实现了电脑版本,先看效果:二、说明布局和配色借鉴了手机游戏;通过上下左右按键的操作,控制数字的移动;在移动过程中相同的数学会自动合并,变成更大的数字。三、主要代码界面布局:#pragma once#include <QtWidgets/QMainWindow>#include "ui_DD1024.h"class QGraphicsScene;class QGraphicsView;class QKeyEvent;原创 2021-02-15 22:39:03 · 518 阅读 · 0 评论 -
Qt5.10编写俄罗斯方块
一、先看效果图二、主要的设计思路:1.采用Qt的QGraphicsScene、QGraphicsScene、QGraphicsItem实现界面的绘制;2.对每一种类型的方块单独设计一个类,所有类型的方块都是继承自同一基类;3.采用Qt的随机数生产机制,随机的生产每一种类型的方块;4.使用SQLite数据库记录历史的最高值;5.使用方向按键表示变形和移动方块;6.主绘图界面和下一个方块的提示界面,分别使用不同的类来表示。三、主要类1.不同类型的方块基类:#pragma once#inc原创 2021-02-06 21:26:25 · 1452 阅读 · 1 评论 -
VS2015+Qt5.10编译GIS3.10
这几天一直在摸索着编译QGIS(长期支持版本),把整个编译过程记录下来。一. 安装Cygwin有可能网络不通畅,上面的地址需要手动添加上去,点击【下一步】http://cygwin.mirror.constant.com下载flex(词法分析)下载Bison注意:以上只需要下载flex和BisonView选择Category双击skip使之显示出版本号所有搜索完成之后,点击【下一步】开始下载有可能下载会中断,长时间的停滞在某一个进度,需要重新走一遍流程,重原创 2021-01-24 13:49:48 · 384 阅读 · 1 评论 -
Qt QTreeWidget DragDrop的使用之二
1.设置主界面布局,分别提升两个控件2.Drag控件#pragma once#include <QTreeWidget>class QtTreeDrag : public QTreeWidget { Q_OBJECTpublic: QtTreeDrag(QWidget *parent); ~QtTreeDrag();private: void mousePressEvent(QMouseEvent *e)override; void dragMoveEvent(.原创 2021-01-18 23:37:27 · 1766 阅读 · 1 评论 -
Qt界面如何直接修改类名,编译通过
在使用Qt搭建界面的过程中,由于多种原因,在创建GUI中需要修改已经使用的GUI的类名,如果之间修改的话,会出现各种各样的编译错误。现在项目中有一个已经创建好的GUI类的名称和文件名称是一致的,如果要把QtWidgetsDog这个类包括ui文件一起修改成QtWidgetsCat该如何做呢?1.修改这三个文件名为QtWidgetsCat2.在头文件中修改包含的头文件,类名、构造函数、析构函数、成员变量ui的类型3.修改Cpp文件中的QtWidgetsDog修改成QtWidgetsCat。4.修原创 2020-12-24 15:25:02 · 2484 阅读 · 0 评论 -
Qt事件处理机制
一.自定义事件的发送和接收Qt中的事件处理机制,通过系统的事件处理层层传递,一直到直接接收事件的对象。Qt中事件发送的行数有两个:QApplication::sendEvent(QObject *receiver, QEvent *event);和QApplication::postEvent(QObject *receiver, QEvent *event);参数QObject *receiver: 表明事件发送的对象参数QEvent *event:发送的事件对象sendEvent和p原创 2020-12-01 12:14:06 · 220 阅读 · 2 评论 -
Qt 使用半透明树形控件,并且可以拖动
1.效果展示在一个窗口上添加一个浮动的半透明树形编辑框,并且可以拖动这个这个树形编辑框,双击透明界面关闭,先看效果:2.自定义一个树形控件#pragma once#include <QTreeWidget>#include <QPoint>//计算结果输出树class QWidget;class PrintCalResultTree : public QTreeWidget { Q_OBJECTpublic: PrintCalResultTree(Q原创 2020-09-22 11:30:33 · 766 阅读 · 0 评论 -
Qt 中QTimer在子线程中使用
如果想在程序中使用延时或者定时功能,一般使用sleep或者定时器QTimer。想要在子线程中使用QTimer改怎么使用呢?第一次线程类#pragma once#include <QThread>class QTimer;class QtMyThread : public QThread { Q_OBJECTpublic: QtMyThread(QObject *parent); ~QtMyThread();private: void run()override;原创 2020-09-08 20:26:41 · 4614 阅读 · 2 评论 -
Qt 使用moveToThread创建线程调用
QT中使用多线程有很多种方法:1.继承QThread,并且实现run方法2.继承QRunable,实现run方法3.使用moveToThreadmoveToThread主要是让当前继承在QObject中类对象关联到QThread中,通过信号槽的方式实现线程的启动和结束.工作类:#pragma once#include <QObject>class Worker : public QObject { Q_OBJECTpublic: Worker(QObject *pa原创 2020-07-21 11:02:55 · 1015 阅读 · 4 评论 -
QT自定义控件并且添加到QT Designer中
大家在统一的QT项目中进行开发,为了使用统一的主题和界面风格,通常采用QSS来设置统一的风格。但是QSS设置的风格有时也不是我们想要的,达不到我们想要的效果。但是自定义控件可以满足我们的需求,而且把定义好的控件分发到各个项目成员中的Qt Desiner中,每个成员只需要在设计界面的时候,直接拖动就可以了。如下图自定义了一个按钮。1.首先需要自定义一个按钮控件:#pragma once#include <QtUiPlugin/QDesignerExportWidget>#include原创 2020-07-20 16:58:14 · 5218 阅读 · 1 评论 -
利用Qt来显示OSG并且设置相机的位置
#pragma once#include <qopenglwidget>#include <osgViewer/Viewer>#include <osg/Node>class OsgCanvas2 :public QOpenGLWidget {public: OsgCanvas2(QWidget *parent); ~OsgCanvas2();private: void init(); virtual void initializeGL();原创 2020-06-23 22:42:21 · 1425 阅读 · 1 评论 -
QGraphicsScene和QGraphicsView坐标系统
Graphics View中有三个坐标系统,即场景坐标、视图坐标、图形项坐标。场景坐标场景坐标等价于QPainter的逻辑坐标,一般以场景中心为原点;视图坐标与设备坐标相同,是物理坐标,默认为左上角为原点;图形项的坐标是局部逻辑坐标,一般以图形项的中心为原点。一个图形项的位置是其中心点在父坐标中的坐标,对于没有父图形项的图形项,其父对象就是场景,图形项的位置就是在场景中的坐标。如果一个图形项还是其他图形项的父项,那么父项进行坐标转换的时候,子项也做同样的坐标转换。视图坐标视图坐标就是窗口界面的物理原创 2020-06-01 23:29:28 · 7663 阅读 · 2 评论 -
自定义QLineEdit在失去焦点的时候,获取编辑框中的内容
使用场景:在QTreeWidget或者QTableWidget中编辑完成一个item之后需要立即响应处理,也就是在item编辑之后,失去焦点之后完成处理,需要获取编辑框的失去焦点事件。#pragma once#include <QLineEdit>#include <QString>//QTableWidget或者QTreeWidget中item的编辑框class ILineEditFocus;class LineEditItem : public QLineEd原创 2020-05-18 17:11:46 · 2720 阅读 · 0 评论 -
PyQt5创建QT界面程序
利用PyCharm创建一个PyQt程序1.新建一个QT界面设计完成之后,点击保存2.把UI文件编译成Py文件3.创建主程序文件,调用当前界面文件import sysfrom PyQt5 import QtWidgets, QtCoreimport Mainif __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) mainWindow = QtWidgets.QMainWindow()原创 2020-05-16 22:12:40 · 727 阅读 · 0 评论 -
PyQT5安装
1.安装PyQt5直接连接服务器比较慢,可以连接镜像pip3 install -i https://https:pypi.tuna.tsinghua.edu.cn/simple PyQt52.安装pyqt5-tools安装镜像pip3 install PyQt5-tools -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com3.配置QtDesignerQtDesigner用来设计程序界面由于我的电脑安装了Qt5.1原创 2020-05-12 23:41:32 · 580 阅读 · 0 评论 -
Qt实现可以扩展的对话框
先隐藏其余的界面,在需要的时候点击显示出来。先看一下效果:整体界面:#pragma once#include <QWidget>#include "ui_QtGuiExtern.h"class QtGuiDetail;class QtGuiExtern : public QWidget { Q_OBJECTpublic: QtGuiExtern(QWidg...原创 2020-05-07 16:37:29 · 453 阅读 · 0 评论 -
QT信号槽连接之不同线程之间的信号槽连接方式
QT中信号槽的连接方式有五种:Qt::AutoConnection信号槽默认的连接方式,如果信号与槽在同一线程,就自动采用Qt::DirectConnection,如果信号与槽不在同一线程,将自动采用Qt::QueuedConnection的连接方式。Qt::DirectConnectionQt::DirectConnection表示一旦信号产生,立即执行槽函数。 (如果主线程发送信号给...原创 2020-04-09 22:54:48 · 6907 阅读 · 0 评论 -
Qt之另类提示框 -弹出抖动的提示框
先看效果,当用户点击了错误的节点,提示用户错误,3秒后退出。#pragma once#include <QWidget>#include "ui_QtGuiTip.h"class QTimer;class QtGuiTip : public QWidget { Q_OBJECTpublic: QtGuiTip(QWidget *parent = Q_NULLP...原创 2020-04-06 00:03:52 · 465 阅读 · 1 评论 -
Qt中自定义QTreeWidget实现节点拖拽复制功能
QT中在QWidget支持拖拽功能,QTreeWidget继承自QWidget,所以自然也具有节点的拖拽功能。拖拽包含两个功能:一个是拖动(Drag),一个是放下(Drop)。拖动的数据是QMimeData数据,MIME数据定义格式:类型/数据 (注意中间有斜线)。若被拖动的对象放下的控件,不接受拖动的对象,Qt光标显示禁用的形状(一个禁用形状)。开始拖动:通过调用QDrag::exec()...原创 2020-04-05 23:11:01 · 5881 阅读 · 2 评论 -
自定义QTreeWidget提升后出现的编译错误,无法打开包括文件: “dragtreewidget.h”
自定义了一个QTreeWidget,然后新建一个项目,把里面用到的QTreeWidget提升了一下class DragTreeWidget : public QTreeWidget { Q_OBJECTpublic: DragTreeWidget(QWidget *parent); ~DragTreeWidget();};DragTreeWidget::DragTreeWidg...原创 2020-04-05 22:34:39 · 456 阅读 · 1 评论 -
Qt自定义QTreeWidgetItem编译出错
由于项目的需要,自己重新定义了一个MyTreeWidgetItem继承自QTreeWidgetItem,编译的时候出现了错误:#pragma once#include <QTreeWidgetItem>class MyTreeWidgetItem : public QTreeWidgetItem { Q_OBJECTpublic: MyTreeWidgetItem(Q...原创 2020-04-04 19:49:46 · 1268 阅读 · 0 评论