自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (4)
  • 收藏
  • 关注

转载 inno setup 安装前判断程序是否在运行

MsgBox('程序正在运行,请先关闭程序后再重试!MsgBox('程序正在运行,请先关闭程序后再重试!此外还要下载一个psvince.dll 放在inno setup的目录里。安装的时候判断进程是否存在。卸载的时候判断进程是否存在。

2024-03-15 15:01:41 67

原创 mxonline安装总结

我本地的python是3.6的,但django是3.x的,直接在项目目录下python manage.py runserver运行,则提示缺少库,安装后又提示各种包依赖错误,感觉乱七八糟的。但是速度有点慢,上面的命令可以加上 -i https://mirrors.aliyun.com/pypi/simple/ ,下载源改成国内阿里的。看了cmd的日志输出,一次性安装成功,非常快,太棒了,剩下就是搞定mysql了,我系统的mysql是ok的,root账户和密码跟mxonline项目一样,

2024-02-19 14:11:02 266

原创 win10系统Qt5.15.2配置OpenCV4.5.2

win10系统Qt5.15.2配置OpenCV4.5.2_qt5.15.2+opencv4.5.2+msvc2019-CSDN博客

2024-01-30 16:01:54 65

原创 Ubuntu20.04安装suiteCRM

对照着一步步操作就可以了。

2024-01-02 18:04:23 660

原创 在QTableView中使用各种自定义委托

QT的MVC(View/Delegate)模型十分强大,可以利用各种控件来对表格的输入进行限制,不过我以前一直没有过,这几天研究了一下,写个小例子,希望大家喜欢。D:第五列是性别列,利用QComboBox委托对输入进行限制,该列的单元格只能输入Male或Female。B:第三列是ID列,只能输入1-12个数字,利用QLineEdit委托和正则表达式对输入进行限制。C:第四年龄列,利用QSpinBox委托进行输入限制,只能输入1-100之间的数字。A:第一列是编号列,使用只读委托,令该列的单元格是只读的。

2023-12-01 20:59:00 1048

原创 如何添加需要管理员权限软件的开机自启

工作需要将程序设置成管理员权限运行,又需要设置在windows10上开机启动,按照网上设置windows10开机启动的方法,都失败了,找了很久才知道是因为我的程序是以管理员权限兼容方式运行的,所以开机启动会失败。作者:野生凌喵 https://www.bilibili.com/read/cv20744721/?6、点击“浏览”,然后选择你需要开机自启的程序(也就是上方提到的需要管理员权限的程序),再点击下一步。8、在弹出的窗口内,勾选“使用最高权限运行”,然后点击确定。5、“启动程序 ”下一步。

2023-10-27 20:31:53 1302 1

原创 解决Django报错 : No module named ‘MySQLdb‘

mysqldb和pymysql都是python用于连接mysql的接口,如果你使用的python2.x的环境的话,使用pip进行安装的时候可以使用:pip install MySQL-python,则这时候就不需要在__init__.py中添加上面的那两行代码。如果使用的是python3.x的环境,同样使用pip进行安装的时候输入一下命令就可以:pip install pymysql。Django的版本是2.0,Python的版本号是3.6.4。

2023-07-29 10:51:21 1285

原创 QT 不阻塞线程,达到延时的作用

这里穿插一个概念,所谓线程,不是new了一个线程对象就是线程,这个线程对象其实是在父线程中,跟其它对象一样,new了一个实例而已。所以使用继承QThread并重写run函数的方式实现线程时,一定切记,不是所有函数就一定会在线程中执行,除非它被run函数调用,或者在run当中使用rambda写匿名槽函数。而写匿名槽函数的时候,接收者千万别写this,this指针是指向父线程的线程对象,能作为句柄控制线程,但this隶属于父线程。上面说过线程的实现,离不开父线程的线程对象,它仅仅是子线程的操作句柄。

2023-06-09 11:33:25 2045

原创 QSocketNotifier:套接字通知程序不能从另一个线程启用或禁用

本文介绍了QSocketNotifier:套接字通知程序不能从另一个线程启用或禁用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

2023-05-22 14:21:41 761

原创 QObject: Cannot create children for a parent that is in a different thread

这样的错误,多是由于在槽函数中多层嵌套时new操作出的问题,建议大家尽量避免在槽函数中进行new操作。测试代码:其实还是第四种做法,就是把WorkerA再次moveToThread一下,毕竟它是在构造函数里创建的,而那时候Worker所在的线程还是主线程。

2023-05-22 13:39:27 1086 1

原创 解决QT对象跨线程调用问题

就表示在socket的生存线程运行,这可能是任何线程,取决于你在哪里实例化这个socket。Qt有很多IO相关的类,比如说QTcpSocket、QFile,总的来说,在Qt的框架内使用,还是非常方便的。这也是有道理的,很多时候真的是设计问题导致的,因为设计失误出现了不应该有的跨线程操作。除了IO相关的类,其他有一些Qt的类也不可以跨线程操作,比如说QTimer,也会报错。要解决这个问题,直观的说就是不要跨线程操作,网上也有很多类似的说明。请注意你的Qt版本,以及bug的修复情况,酌情使用这个方法。

2023-05-19 14:23:15 954

原创 Qt | 实现一个简单的可以转动的仪表盘

在paintEvent()中绘制这三张图片。当需要旋转指针的角度时,改变指针图片的角度,再调用update()函数重新绘制显示就可以了。设置角度的值,调用update()函数进行刷新。调用update();函数会执行paintEvent();定义一个改变指针角度值的函数void valueChanged(int value);

2023-04-28 09:21:58 1245

原创 Linux信号量编程 semget() semctl() semop()

④ 如果不需要信号量,则从系统中删除它,此时使用semctl()函数的 IPC_RMID操作。需要注意的是,在程序中不应该出现对已经被删除的信号量的操作。① 创建信号量或获得在系统中已存在的信号量,此时需要调用 semget() 函数。不同进程通过使用同一个信号量键值来获得同一个信号量。② 初始化信号量,此时使用 semctl() 函数的SETVAL操作。当使用二维信号量时,通常将信号量初始化为1。③ 进行信号量的PV操作,此时,调用 semop()函数。这一步是实现进程间的同步和互斥的核心工作部分。

2023-03-22 11:22:15 182

原创 【C++】类中有指针类型的成员变量

如果一个类中有指针类型的成员变量,就要在构造函数中new动态分配内存,也需要在析构函数中delete释放内存。C++的2.6.2节。

2023-02-08 10:13:14 210

原创 QT 编译报错 invalid use of incomplete type class Ui::Login

解决方法是在其对应的ui文件中,整个界面的ObjectName没有进行更改,打开其对应的ui文件,果然发现objectname还是原始的form,将其ObjectName更改为Login即可。编译始终报错:invalid use of incomplete type class Ui::Login,啥情况,该包含的ui_.h文件也包含了,也setup了,流程一个都不少,真扎心,难道一上午辛辛苦苦弄得login.ui文件白费力,要重新弄不带UI的吗?报上面的问题,说明Ui::Login编译器不认识。

2023-02-02 15:07:54 1391 3

原创 在Windows中安装Mysql数据库(shawn安装成功记录)

4、初始化mysql, 执行 mysqld --initialize --console,这里会产生一个随机密码,记住这个密码后面会用到(红圈里的就是密码)1、点击“我的电脑-->属性-->高级系统设置-->环境变量”,接下来如下图所操作,在系统变量中选中path一行,点击“编辑”点击下载,选择自己的文件路径,C盘非C盘都可以(我没有放C盘),路径中不要出现中文,下载完后解压,解压后如下图。# 设置mysql的安装目录 ---这里输入你安装的文件路径----# 设置mysql数据库的数据的存放目录。

2023-01-13 08:30:30 250

原创 windows server上用GITBLIT图形化软件来搭建git服务器,客户端可以Ubuntu或windows

4 用户只需要把这个CLONE地址复制下来,在客户端用git clone命令克隆下来, 然后可以在这个CLONE下来的仓库里ADD文件,然后COMMIT后,再直接PUSH到远程仓库,因为第一步有在服务器设置了公钥文件,所以是不需要密码的。花了一整天的时间在windows server上来搭建git服务器,本以为直接用git软件加上copssh软件来搭,后面发现开源的Gitblit很适合搭建局域网版的git服务器,自带图形化界面,很直观一目了然。git服务器创建版本库,本地代码关联远程仓库并上传代码。

2023-01-11 16:51:07 535

原创 sql之left join、right join、inner join的区别

换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.B表记录不足的地方均为NULL.

2022-11-28 14:24:52 145

原创 Qt延时处理的四种方法

这种方法不会阻塞当前线程,尤其适合Qt的单线程带UI程序,或者UI线程,因为线程阻塞时,很明显的现象就是UI卡死。可以延时,但也会阻塞线程。它可以使得程序在while等待期间,去处理一下本线程的事件循环,处理事件循环最多100ms必须返回本语句,如果提前处理完毕,则立即返回这条语句。方法不会释放对象锁,其他线程无法访问对象,因此会阻塞线程;创建子事件循环,在子事件循环中,父事件循环仍然是可以执行的。上述代码使程序延时10 s,但是这种方法也会阻塞线程。方法会释放对象锁,使得其他线程能够访问该对象。

2022-11-25 09:32:44 2642

原创 Qt之延时总结

不够频繁的话,显然可能会使GUI线程的响应变差,例如每500ms才被调用一次,那么GUI的事件循环就只能500ms才被处理一次,当然,这个问题可以通过设定processEvents()的第二个形参略微得到缓解,更好的做法是,保证被调的周期

2022-11-25 09:25:55 3617

原创 在Ubuntu系统 搭建企业GIT服务器

SHAWN20221121备注: 以上是UBUNTU系统搭建GIT服务器的全部步骤,在此过程遇到了一些问题,比如连接服务器出现:SSH connnection refused,比如在GIT服务器找不到PUSH上去的代码,以下是相关解决截图:服务器端创建的GIT用户,使用SUDO时会出现不在SUDO列表里,解决方式如下:PUSH到服务器的代码会搜索不到源码,解决方式如下:

2022-11-21 09:58:24 400

原创 QT (USBor其它)串口通信的实现方法

如果用qt写程序作为上位机,然后通过和usb和下位机通信的时候,就需要用到qt中的串口通信了。本文介绍了QT串口通信的实现方法,感兴趣的小伙伴们可以参考一下前言:如果用qt写程序作为上位机,然后通过和usb和下位机通信的时候,就需要用到qt中的串口通信了。使用qt中的串口通信的时候需要用到的两个头文件分别为:12除了加上面两个头文件之外,还需要在工程文件中加下面一行代码:1我们一般都需要先定义一个全局的串口对象,记得在自己的头文件中添加上:1。

2022-11-19 12:19:13 943

原创 串口、Modbus通信协议

Modbus通信协议:Modbus通信协议分为MODBUS RTU,MODBUS ASCII和MODBUS TCP三种模式。MODBUS RTU,MODBUS ASCII所用的物理硬件接口都是串行(Serial)通讯(RS232,RS422,RS485)。所以我的理解是这两者的区别是,串口是一种硬件连接方式,可以看成是硬件。Modbus是一种数据传输协议,可以看成是软件。前段时间项目中接触到了这几个知识点,所以记录一下,因为研究的也不深入,所以有什么问题还请大家帮忙提出来,共同进步。

2022-11-19 12:07:20 1645

原创 Git服务器搭建

ssh服务器端有两个配置文件: /etc/ssh/ssh_config和~/.ssh/config,前者是对所有用户,后者是针对指定用户。clone仓库后就可以通过把要通过Git管理的代码拷贝到仓库的当前目录,然后通过git add, git commit, git push origin master提交到Git服务器。创建服务器仓库时通常在git init中加上`--bare`选项,即建立一个裸仓库,一个不包含当前工作目录的仓库,按照惯例裸仓库目录名以 .git 结尾。六、Git服务器ssh服务配置。

2022-11-17 16:25:36 106

转载 搭建企业Git服务器

在一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。假设你已经有sudo权限的用户账号,下面,正式开始安装。第一步,安装git。

2022-11-17 16:17:07 973

原创 ubuntu 20.04安装RTL8821CE无线网卡驱动

https://github.com/aircrack-ng/rtl8188eus/pull/146/files 作者:先秦王今天不熬夜 https://www.bilibili.com/read/cv18141718 出处:bilibili。如有报错,请根据报错1(报错:net/ipx.h: No such file or directory),找到对应驱动文件路径。疫情期间闲下来无聊,把办公室的旧机器装了ubuntu,但是无法连接无线网。在有线网的状态下载网卡驱动 或者直接 用U盘拷贝 下载连接。

2022-11-13 07:33:59 4035 1

原创 python中的or的两种用法

在这条赋值语句中的 or 的含义是判断 b 和 c 中不为 None 的一个赋值给 a,两个都不为 None 则选择前面的赋值给 a。python中的or的两种用法。

2022-10-28 14:36:00 3007

原创 分辨率和屏幕尺寸以及界面的绝对坐标

说点题外话:屏幕的最大分辨率取决于显示的性能和显示器的性能,比如显卡能显示的最大分辨率是1920 x 1080,但是显示器能支持的最大分辨率是 1024 x 768 (这个分辨率是以前旧显示器的常用分辨率),那么你只能设置当前分辨率为 1024 x 768;屏幕的显示是以一个个的点构成的,比如同样的显示器,分辨率为1920 x 1080,那就是宽度上有 1920个显示点,当然要比 1024 x 768 的1024个显示点要精细,显示效果要好了的。不能是屏幕越大越好,要屏幕越大分辨率也要跟着高才是好的。

2022-10-21 14:57:59 996

原创 QT圆环图

4 用的是 Qt 中的命名空间声明,等效于圆环图中间有空,对应 #11,设置了中间孔的尺寸大小;另外,#21 设置了圆环图的显示主题,#22 设置的是图例的字体;其它代码,饼图的大同小异。

2022-10-20 16:00:40 316

原创 对Django中ImageField的一些认识

ADMIN_MEDIA_PREFIX:这个值是admin的静态文件链接的前缀。这是因为MEDIA_URL和ADMIN_MEDIA_PREFIX是重的,查 找静态文件的时候把所有的静态文件都当做是admin的静态文件了,都在admin的静态文件目录下查找了,所以查找不到。Django中model里的ImageField在mysql数据库中的相应字段是一个 varchar(100)(ImageField是没有参数情况下的),它存放的是图片的相对路径(upload_to的值加上图片名)。

2022-10-14 15:08:17 1221

原创 django在线学习项目编译关键错误汇总

另外import_export库也不要用最新的,可以pip3 install django-import-export==0.6.1 或 1.2.0 或 2.4都可以,但不能用最新的,要不然这玩意会把DJANGO更新成4,从而ONLINE COURESE就装不上了,这个项目要求DJANGO 2.2。报错:cannot import name 'login' from 'django.contrib.auth.views'必要时删除migrations目录下除了_init_.py之外的文件再次执行以上命令。

2022-10-14 10:18:02 521

转载 Qt提供的饼图QPieSeries类

对应不同类型的图表Qt提供了不同的系列,上面提到的曲线图QLineSeries、饼图QPieSeries、柱状图QBarSet等,系列处理负责存储访问数据,还提供了数据的绘制方法,比如折线图和曲线图分别对应QLineSeries和QSPLineSeries。不论是曲线QLineSeries、饼图QPieSeries、柱状图QBarSet还是其他类型的图标,其中展示的内容本质都是数据,在QtCharts(QT图标组件)中,这一组组的数据被称为系列。//设置该切片的pen属性, 即绘制该切片边框的钢笔。

2022-10-10 11:36:25 438

原创 Django ModelForm中使用钩子函数校验数据

re_password = forms.CharField(label='确认密码', widget=forms.PasswordInput(), min_length=6, max_length=32, error_messages={'min_length': '密码长度不能小于6个字符', 'max_length': '密码长度不能大于32个字符'})raise ValidationError('手机号已被注册')# 获取redis中存储的数据{'phone': 'code'}

2022-09-29 09:46:51 543

原创 Django之ModelForm

验证数据库操作如何定义http上定义的字段呢,自定义写成中文的?之前的用法是在Form里写上label。Model Form定义要用verbose_name指定显示那些字段1234classusername==32='用户')email=='邮箱')user_type=='UserType',to_field='id'='类型')如果不在model里定义,在modelForm里实现,利用labels123456789class。

2022-09-29 09:26:38 473

原创 django框架ModelForm组件用法详解

django本身就有对字段检测的功能,只不过单纯的是对空的判断,一般显示的错误信息是英文,我们要显示为中文呢,怎么处理。1 ModelForm组件对数据进行校验的时候,对于校验不合格的数据放入 form.errors。ModelForm组件是django中一个非常强大的组件,其功能主要有。希望本文所述对大家基于Django框架的Python程序设计有所帮助。当设置了一个字段的钩子函数时,最后必须要返回这个字段。下面一个例子:校验用户的信息,并且确认用户的密码。插件:指定属性或者设置字段类型。

2022-09-28 18:32:39 817

原创 Qt Ubuntu20.04出现段错误核心已转储问题解决方案--之core dump

修改成功后,按照网上的说法,再运行程序就会生成core文件,一般路径和可执行程序一个路径。我直接用echo "/home/boy/corefile/core-%e-%p-%t"> /proc/sys/kernel/core_pattern 进行修改,结果如图。//设置core文件的输出路径和输出文件名,这里我的路径是/home/boy/corefile,文件名就是后面的部分。我的系统是20.04,完全按照这篇文章搞定qt core dump,找到调试CORE文件的,并用GDB找到段错误。

2022-09-24 16:31:33 1857

原创 Ubuntu上 Django连接 Mysql(记录我踩的坑)

1、#查看有没有安装MySQL:dpkg -l |mysql2、 安装MySQL:3、检查是否安装成功:通过上述命令检查之后,如果看到有 mysql 的处于 LISTEN 状态则表示安装成功。4、登录mysql数据库可以通过如下命令:-u 表示选择登陆的用户名, -p 表示登陆的用户密码,提示:Access denied for user 'root'@'localhost'

2022-09-16 15:16:30 431

原创 QT中多线程槽函数在哪个线程中执行?

也是代码中注释掉的 moveToThread(this)所做的就是将整个 thread 类移到次线程中,去掉注释,你会发现slot在次线程中运行。可以看到,主线程id和slot_main()中的线程id是一样的,槽函数的线程和主线程是一样的!所以thread类中的slot_main()是在主线程执行,run()函数是在次线程执行。主线程(信号)QThread(槽), 但由于没说槽函数是在主线程执行的,所以不少人都认为它应该是在次线程执行了。run函数中的代码时确定无疑要在次线程中运行的,那么其他的呢?

2022-09-05 11:55:29 383

转载 Linux Qt程序打包发布(转)

在这里插入图片描述将copylib.sh复制到NewPro/platforms文件夹中,运行:./copylib libqxcb.so命令,同样生成lib文件夹(这里是libqxcb的依赖库,若缺少,将触发“xcb”错误),将lib文件夹下所有文件拷到NewPro目录下,遇到文件冲突选择全部替换。在这里插入图片描述将整个imageformats目录复制到NewPro目录中即可,同时,如果有预加载图片,也要一并放入NewPro中,若以qrc的形式加载,也要将qrc文件目录放到NewPro中。

2022-09-03 09:42:49 915

原创 Ubuntu20.04安装django

2.下载python-django-common。导入django模块。1.安装django。查询django版本。显示django版本。

2022-08-20 08:21:25 670

滚动截屏工具

可以用于滚动截屏的工具,包括截取滚动网页等,非常好用,装机必备

2013-04-11

qt实例70个,大家多实践

这是一个qt实例的大集合,综合了各个类的使用方法.........

2009-12-04

html入门精通教程

html是编写网站的基础,这是一本入门级别的书籍............

2009-12-04

保护健康--工作休息提示工具

专为上班族设计的,按时休息提醒工具,包含Qt源码,眼睛累了,休息一下吧

2009-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除