qt开发-信号槽和样式表
最近使用按钮很多,本节学习一下按钮的一些用法。 ¶信号槽 ¶信号和槽 信号和槽都是函数,对于一个窗口中的按钮,我们期望实现点击按钮后可以调用某个函数,此时就用到了信号槽。 例:src/03/3-4 目标 单击按钮弹出对话框。 实现 ui界面添加Push Button(start、stop),修改窗口类属性名; 头文件添加槽声明: 123public slots: void showconn(); void showdisconn(); cpp添加槽的实现: 1234QLabel *label = new QLabel();label->setText(QObject::tr("Connect."));label->resize(200,100);label->show(); 更改窗口构造函数: “connect(ui->startButton, &QPushButton::clicked,this, &MyWidget::showconn);” //使用connect()函数将单击信号clicked()与新建的槽进行关联,参数 ...
qt开发-鼠标事件与进程
继续学习qt开发,学习一下事件和进程,想做点花里胡哨的~~ ¶事件过滤器 例:源码 src/06/6-2/myevent mylineedit.cpp定义函数,MyLineEdit的evebt()函数中使用了QEvent的type()函数获取事件类型,如果是键盘按下事件QEvent::KeyPress则输出信息。 (event()函数返回bool型操作结果) 123456bool MyLineEdit::event(QEvent *event) // 事件{ if(event->type() == QEvent::KeyPress) qDebug() << tr("MyLineEdit的event()函数"); return QLineEdit::event(event); // 执行QLineEdit类event()函数的默认操作} widget.cpp添加事件过滤器函数定义 12345678bool Widget::eventFilter(QObject *obj, QEvent *event) // ...
qt开发-窗口与事件
Qt是一个完整的开发框架,其工具旨在简化桌面,嵌入式和移动平台的应用程序和用户界面的创建。 ¶项目环境: linux平台:ubuntu20.04 Qt5 ¶Qt开发–hello world ¶使用示例程序 1)使用Qt新建一个hello world程序,使得应用程序可以显示"hello world"字符串。 2)打开QtCreator新建项目:文件->新建文件或项目(或者 Ctrl + N); 选择Application->Qt Wigests Application,填写项目信息,基类选择QDialog(Details->基类); 建立完成后QtCreator会直接打开项目文件,打开helloworld.ui进行设计; Filter中搜索Label,左键拖入中间的主设计区,双击输入Hello World。 3)使用快捷键 Ctrl + R 或者点击左下角运行程序,此时项目路径下多了一个build-XXX-unknown-Debug文件夹; 内有cpp源文件,生成的.o中间文件,以及可执行程序。 Windows平台: 生成.exe文件,运行需要把 ...
Makefile编写
Makefile是在Linux环境下 C/C++ 程序开发必须要掌握的一个工程管理文件。 在Linux下编写程序,因为早期没有成熟的IDE,一般都是使用不同的命令进行编译:将源文件分别使用编译器、汇编器、链接器编译成可执行文件,然后手动运行。 如图(…/…/pic/pic1.png) ¶gcc编译参数 1.使用GCC编译程序 1gcc -o a.out helloworld.c 2.使用-E参数,只做预处理,不编译 1gcc -E helloworld.c 3.制作汇编处理 1gcc -S -o helloworld.S helloworld.c ¶Makefile 编译 例:编写 123456a.out: helloworld.o gcc -o a.out helloworld.ohelloworld.o: helloworld.c gcc -c -o helloworld.o helloworld.cclean: rm -f a.out helloworld.o
android-jni入门
未完待续~ 首先介绍一下Android studio生成的项目文件架构。 ¶简单项目架构 Android 项目文件: Gradle Script:显示项目的所有与构建相关的配置文件 manifests:包含 AndroidManifest.xml 文件(应用清单概览) java:包含java源代码 res:包含所有非代码资源(eg:XML布局,img等) 项目架构: Test1 │ └─app │ ├─build #包含构建输出。 │ │ │ ├─libs #包含专用库。 │ │ │ └─src #包含相应模块在以下子目录中的所有代码和资源文件。 │ ├─androidTest #包含在 Android 设备上运行的插桩测试的代码。 │ │ │ ├─main #包含“主”源代码集文件:所有 build 变体共享的 Android 代码和资源(其他 build 变体的文件位于同级目录中,例如调试 build 类型的文件位于 src/debug/ 中) │ │ │ AndroidManifest.xml #描述应用及其各个组件的性质。 ...
ubuntu20.04桌面假死及解决
ubuntu20.04桌面假死及解决 ubuntu20.04虚拟机桌面假死,鼠标可以移动但点击无反应。 解决: alt + crtl +F1(F1~F6)进入tty终端 输入账号和密码进行登录 ps -t tty7 #查找桌面进程 sudo pkill Xorg #注销桌面重新登陆 ubuntu键盘无反应,无法进入ty终端,xshell远程连接,ps -t tty7显示无桌面进程。可能是由于ubuntu桌面被意外卸载,重装程序,重新登陆。 解决方法: sudo apt-get install ubuntu-desktop sudo pkill Xorg #注销桌面重新登陆
使用VC+VS开发时编码的坑
记录以下研发过程中编码带来的坑! ¶VS 和 VC 使用Visual Studio 2019开发,工程文件默认以ANSI(GB2312)编码方式保存。 使用Visual Studio Code打开源文件,默认以UTF-8编码方式打开,所以VS编写的文件如果以VC打开会有中文乱码; 此时如果在VC下保存,源文件编码格式会编程UTF-8。 ¶Winduws 和 Unix 在Winows下文件默认以CRLF换行保存,而Unix例如Linux默认以LF换行解析文件。 1cat -A 文件 #查看文件换行,在Linux平台编译CRLF格式的文件,会自动在行尾加^M ¶git的坑 git commit上传项目会自动把文件以LF UTF-8的形式保存,如果在Windows上拉取项目就是CRLF换行,在Unix平台拉取就是LF换行。 1git config --global core.autocrlf false #可以使用命令像转换开关关闭 关闭换行转换后,上传项目,git会保存上传文件的格式,拉取时也一样。
国密SM2签名
¶About GMSSL GmSSL是由由北京大学自主开发的国产商用密码开源库,实现了对国密算法、标准和安全通信协议的全面功能覆盖,支持包括移动端在内的主流操作系统和处理器,支持密码钥匙、密码卡等典型国产密码硬件,提供功能丰富的命令行工具及多种编译语言编程接口。 ¶SM2签名 SM2签名算法实际上就是使用椭圆曲线密码算法进行数字签名和验证,以通信为例,服务器使用私钥签名,客户端使用公钥验签。 ¶椭圆曲线 椭圆曲线公钥密码所基于的曲线性质如下: ——有限域上椭圆曲线在点加运算下构成有限交换群 ,且其阶与基域规模相近; ——类似于有限域乘法群中的乘幂运算 ,椭圆曲线多倍点运算构成一个单向函数; 根据椭圆曲线的性质,找到曲线基点G在素数域(GFp)或二元扩域(GF2m)的k倍点P(x,y),即: (x,y) = kG 则点P(x,y)为公钥,k为私钥。 ¶SM2签名算法 GMSSL官方项目地址 在使用GMSSL-v1 SM2签名算法的过程中,发现了一下问题: 1.函数SM2_do_sign()中约每100次生成含有padding的签名 2.程序源码存在内存泄露问题 因此,本项目对GMSS ...
hexo博客文章写作
¶常用命令 hexo 安装 123npm install hexo -g #安装npm update hexo -g #升级hexo init #初始化 服务器 12345678910hexo server #Hexo 会监视文件变动并自动更新,您无须重启服务器。hexo server -s #静态模式hexo server -p 5000 #更改端口hexo server -i 192.168.1.1 #自定义 IPhexo clean # 清除缓存文件(db.json和已生成的静态文件,尤其是更换主题后) hexo g # 生成静态文件hexo s # 启动hexo (上述两个指令需要在博客根目录下执行)hexo d # 部署到cmdHub上(前提是已经添加SSH Key,设置好账户信息) 12hexo new "文章名" #新建文章hexo new page "页面名" #新建页面 ssl报错 解决方案 在项目文件夹的命令行窗口执行下面代码,然后再cmd commit 或cmd clone 取消cmd本身的https代理,使用自己 ...
测试常用命令--1
记录一下测试时常用的命令 ¶1.docker常用命令 ¶测试中用到的docker命令:#### 12345678service docker start #开启dockerdocker ps #查看docker正在运行的容器Docker start 容器ID #启动容器#docker访问外部网络,上位机连接前要检查sysctl net.ipv4.ip_forward #如果为 0,说明没有开启转发,则需要手动打开sysctl -p ¶docker常用命令大全:#### 12345678910111213141516171819202122232425262728293031323334353637383940#infodocker info #显示docker的系统信息,包括镜像和容器的数量docker version #显示docker的版本信息。#镜像命令docker images #查看所有本地主机上的镜像 可以使用docker image ls代替docker search #搜索镜像docker pull #下载镜像 docker image pull ...
工控安全事件整理
终于来啦,杰哥的第二篇博客 WORK 整理一下目前收集的典型工控安全事件 ¶1.震网事件 ¶事件 : 2010年9月24日,伊朗核设施爆出Stuxnet病毒(“震网病毒”)攻击,导致其核设施不能正常运行。 ¶传播介质 : u盘 ¶攻击对象 : 国家重要基础设施 ¶漏洞利用 : MS10-046、MS10-061、MS08-067、MS10-073、MS10-092 Stuxnet首先是感染外部主机,然后感染u盘,利用Link文件漏洞(MS10-046)传播到内网。 在内网中,通过快捷方式文件解析漏洞、RPC远程执行漏洞(MS08-067)、打印机后台程序服务漏洞(MS10-061),实现联网主机的传播(横向渗透),到达装有WIN CC的工作站。 当被感染的工作站连接到PLC,Stuxnet部署恶意代码,向PLC发送特定指令。 MS10-073、MS10-092用于提权。 ¶攻击过程 : Stuxnet蠕虫利用多个零日漏洞和U盘等移动设备在工业互联网中传播,最终目的是到达WIN CC主机。攻击者利用WIN CC存在的硬编码漏洞,窃取数据库信息,保存密码;利用项目文件加载DLL文件出错, ...
avatar
Jiege
美丽杰哥的个人博客
Github
公告
Jiege's blog~
最新文章
网站资讯
文章数目 :
35
本站总字数 :
33.1k
本站访客数 :
本站总访问量 :
最后更新时间 :
最新评论
正在加载中...