- 博客(30)
- 收藏
- 关注
原创 Qt下获取屏幕分辨率
{ QApplication a(argc, argv); QDesktopWidget *desktop = a.desktop(); int screen_number = desktop->primaryScreen(); QRect rect = desktop->screenGeometry(screen_number);}...
2020-03-26 15:08:15 342
原创 Qt下自定义tabwidget使tabbar水平放置且文字水平
#include <QApplication>#include <QStyleOptionTab>#include <QStylePainter>#include <QTabBar>#include <QTabWidget>class TabBar: public QTabBar {public: QSize tab...
2020-03-26 14:41:53 1592 1
原创 tcp客户端和服务端
client.c#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <string.h>#include <netinet/in.h>#include <errno.h>#include <memory.h&g...
2020-03-26 14:17:45 199
原创 Qt开机动画模板
直接上代码: MainWidget w; //主界面 //logo QSplashScreen *splash = new QSplashScreen; splash->setPixmap(QPixmap(":/ad/loading")); splash->show(); QDat...
2020-03-26 11:15:54 587
原创 Qt自定义button事件
直接上代码TPPPushButton.h#include <QPushButton>#include <QPainter>#include <QMouseEvent>class TPPPushButton : public QPushButton{public: explicit TPPPushButton(QWidget *pare...
2020-03-26 11:06:48 1018
原创 使用dnw的一个问题
在使用dnw的过程中,需要用到/dev/secbulk设备,但是在插上usb先后并未出现该设备,在折腾了一整天后发现出现secbulk设备需要满足两个条件 1.安装了secbulk驱动 2. 必须在开发板的uboot中输入dnw命令后才能在pc机上dnw 文件。========================================================在此贴出secbu...
2020-02-21 18:55:25 329
原创 在ubuntu上安装驱动
今天在ubuntu上安装dnw时一直提示dnw usb device not found,百度了一圈,发现dnw需要用到/dev/secbulk,但在我的ubuntu中没有找到这个设备,推测是驱动没有安装的缘故。该驱动没法通过apt来安装,so找到了secbulk的源码,利用源码来安装。在此记录下源码安装驱动的方式。如下是Makefile内容:# obj-m := secbulk.o# ...
2020-02-21 18:42:46 877
原创 git 工具篇
在git push时出错,如下:bubu@ubuntu:~/Desktop/jushu/R16_V3/alexa-event-v3/src/alexa-realizer$ git push -u origin mastererror: src refspec master does not match any.error: failed to push some refs to 'git@...
2020-01-31 16:27:01 139
原创 tiny4412移植u-boot-2014.10
第一天: 打算移植uboot到tiny4412上,先查看ubuntu上现有的交叉编译器是否可以;1. export CROSS_COMPILE=arm-linux-2. export ARCH=arm3. 在configs目录下找一个现成的arm架构的配置zynq_microzed_defconfig,makezynq_microzed_defconfig...
2020-01-24 23:54:43 207
原创 bootloader移植要点
bootloader需要做以下几点1. 硬件初始化 a. 关看门狗 ========== 否则系统会不停的重启 b. 关中断 ========== 避免环境干扰或意外触发中断导致初始化失败 c. 设置时钟 ========= 上电时使用的是晶振时钟,频率较低, 设置PLL可以提高程序执行速度 d. 初始化内存 ======== cpu...
2019-10-29 11:32:14 346
原创 Linux使用pthread_cond_timedout超时的问题
最近在弄线程池的时候,用到了pthread_cond_timeout,调试发现如果判断if( pthread_cond_timeout(*,*,*) = ETIMEDOUT){ xxxx;}条件永远无法满足,超时时,打印pthread_cond_timeout返回值和ETIMEDOUT发现分别是-1, 和 110;因此判断if( pthread_cond_timeo...
2019-03-07 11:38:45 1489
原创 Linux工具之autogen.sh
从标题就可以看出了,autogen.sh是个shell脚本,它的作用就是将前一篇Linux工具之autoconf和automake讲的自动产生Makefile的过程集成到脚本中,简化操作。接下来看看如何操作,直接上代码:#!/bin/shecho echo ... helloworld autogen ...echo MISSING=""env aclocal --ver...
2019-03-06 16:24:16 11127
转载 git版本管理工具
发现一篇很好的介绍git工具的文章,就不在此多此一举了,直接搬过来。git上传远程仓库详细教程git上传远程仓库步骤:1. git init2. git remote add origin url3. git pull origin master4. git add .5. git commit -m "xxx"6. git push origin maste...
2019-03-06 14:53:26 117
原创 Linux工具之autoconf和automake
先搬一段别人的文章来说明为什么需要这两个工具:无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以轻而易举的理顺各个源文件之间...
2019-02-25 19:37:59 1780 1
原创 C++小心得之7: C++11新特性之利用std::conditional实现变量的多类型
如代码所示:Type1,Type2,Type3都是根据模板 <>中的参数0来确定类型的。Type1为int, Type2为double,Type3为double;因此a=3, b=4.2; a+b = 7.2;#include <iostream>#include <type_traits>#include <typeinfo> ...
2019-01-23 14:50:25 4920
原创 c++小心得之6: 基类虚析构作用
BaseClass * base = new DerivedClass();delete base;如果BaseClass基类的析构函数不是虚析构函数,那么在delete base只会调用基类的析构函数; 若派生类对象申请了内存资源,就会造成内存泄露;基类的析构函数改为virtual虚析构函数,虚构函数会变为动态绑定,析构时会先调用派生类的析构函数,再执行基类析构函数; ...
2019-01-05 19:06:51 143
原创 c++小心得之4:组合模式
组合模式可以分为两种形式:透明组合模式和安全组合模式透明组合模式1.抽象类Component中最大化的定义子构建接口,这样client端可以统一的调用构建接口函数;但这样的缺点是不够安全,因为Leaf 不可能有下一级子构建,为其提供多余的接口没有意义,调用这些接口可能会出错;安全组合模式1.在 Component 中最小化定义用于访问和管理子构建的接口,在子构建中添加具体的方法函数;优...
2019-01-05 17:54:44 160
原创 c++小心得之5:策略模式
策略模式(Strategy Pattern)封装一系列算法类,他们继承一个公共基类,在基类中定义了一个公共接口,让不同的算法以不同的方式来实现该接口,通过这个接口,Context 可以调用不同的算法并且使它们可以互相替换。Strategy 模式可以使算法独立于使用算法的客户端。和命令模式有点类似,不过命令模式多了一个接收者类,而策略模式相当于是将在接收者类中封装的具体逻辑封装在了算法类中;...
2019-01-05 11:26:52 113
原创 c++小心得之3: 命令模式
命令模式:在接收者类中一般会对操作进行最基本的封装,命令类则通过对这些基本的操作进行二次封装;优点:1.命令的调用者与执行者分开,调用者只需知道命令类即可,使双方不必关心对方是如何操作的,耦合度要比把所有的操作都封装到一个类中要低的多;这也是命令模式的精髓所在;2.耦合度低,加进新的命令类不影响其他的类,因此扩展命令类很容易。扩展:1.当一个命令需要多个接收者/执行者时,可以在命令内se...
2019-01-04 21:05:11 113
原创 c++小心得之2: 观察者模式
以下情况下可以使用观察者模式:1. 当一个模型有两个方面,其中一个类(类1)依赖于另一类(类2),当类2对象改变时需要通知类1对象相应改变;观察者模式不需要知道被通知的对象数量和具体对象 ; 也叫发布-订阅模式。应用实例:1.对数据进行统计分析时,能够提供多种形式的表现形式,如表格形式,柱状图,折线图等显示方式。这些形式依赖于相同的数据,当数据改变时, 所有的统计显示都能够同时改变。2....
2019-01-04 10:26:21 97
原创 c++小心得之1: 静态成员变量、静态成员函数和单例模式
今天在看单例模式时,看到了有静态成员变量和静态成员函数的使用,发现不太熟悉,特意去熟悉了下,现贴些自己的心得;拿单例模式代码来说明; 静态数据成员是类的成员,而不是对象的成员,所有该类对象都共用该数据成员,可以实现同类对象之间进行数据共享。 静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。 1、静态数据成员在定义或声明时前...
2019-01-02 23:02:29 1276
原创 Qt小心得之4: layout添加的控件设置align方式后的变化
在Qt layout中添加了一个控件widget和一个layout1, layout 1不设置对其方式,对比图一和图二, 图一为widget和layout1都不设置align时的情况; 图二为layout1设置了align时的情况,设置对齐后layout1预留出了一部分空间,方便layout1设置对齐效果,图二layout1设置的是center对齐,可以看到widget和layout1间的间...
2018-12-26 22:26:57 3859
原创 Qt小心得之3: Layout存在默认Margins和Spacing
Qt中layout存在默认的Margins和Spacing值, 如果没有出现预期的效果,可能和默认值有关,可以通过设置setContentsMargins和setSpacing来改变设置。
2018-12-26 17:06:51 3765
原创 Qt小心得之2: 在slot/signals区域声明变量引发错误
在slot/signals区域声明变量会引发如下错误: [ error: [moc_xxx.cpp] Error 1 .
2018-12-25 23:30:27 256
原创 Qt小心得之1: QWidget中添加Q_OBJECT宏, setStyleSheet设置了背景颜色不显示
QWidget在没有添加Q_OBJECT宏,在构造函数里用setStyleSheet设置了背景颜色,是可以正常显示,但添加了Q_OBJECT宏后,QWidget就无法显示背景色了, 百度了一下,发现了类似问题,说是QWidget顶级窗口无论是否添加Q_OBJECT宏, 背景色都可以正常显示;其他的如QFrame,无论是否添加了Q_OBJECT宏,无论是否是顶级窗口,都可以显示背...
2018-12-25 12:24:15 1389 1
转载 make/makefile中的加号+,减号-和at号@的含义
shell 命令每个目标都可以具有与其关联的一系列 shell 命令,这些命令通常用来创建目标。此脚本中的每一条命令都必须以制表符开始。虽然任何目标都能够显示在相关性行上,但除非使用 :: 操作符,否则这些相关性中只有一个能够通过创建脚本来跟随。如果命令行的第一个或前两个字符是 @ (at 符号)、-(连字符)和 +(加号)这几个符号之一或全部,那么将特别处理该命令
2017-04-28 11:23:26 1125
原创 **Tiny4412(Cortex_A9) Uboot内核移植(一)*
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-04-14 00:43:53 844
转载 mount挂载方法详解
mount挂载方法详解● syntax : mount -t type [-rv] -o [option] server:pathname /mount_point 1、挂载点必须是一个目录。2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。 对 于其他操作系统建立的文件系统的挂载也是这样。但是
2017-01-04 15:46:13 12869
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人