自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 QT读Word文档内容

首先在.pro文件中添加QT += axcontainer其次在.h中添加头文件,并声明变量及相关函数。#include <QAxWidget>#include <QAxObject>#include <QAxBase>public: void read_word(); QString getAllText();private...

2020-05-01 11:44:29 2899

原创 C++标准模板库(STL)

STL分为:vector、set、string、map、queue、priority_queue、stack、pairvector翻译为向量,但在C++这里使用叫“变长数组(长度根据需要而自动改变的数组)”更合适。定义:vector<typename> name //typename可以是 int、double、char 或者是结构体类型...

2019-08-21 23:14:34 179

原创 C++求解最大公约数、最小公倍数

求解最大公约数常用欧几里得算法(辗转相除法)。欧几里得算法基于下面这个定理:设a、b均为正整数,则递归式:gcd(a,b) = gcd(b,a%b)。递归边界:gcd(a,0)=a。#include <iostream>using namespace std;int gcd(int a,int b){ if(b==0) return a; else ...

2019-08-20 16:41:55 869

原创 QT 弹出输入对话框

void MainWindow::on_admin_passwd_change_clicked(){ bool ok; QString text = QInputDialog::getText(this, tr("密码修改"),tr("请输入原始密码"), QLineEdit::Password,0, &ok); if (ok && !text.i...

2019-08-05 21:02:03 10222 2

原创 QT LineEdit实现软键盘输入

描述:当光标选中LineEdit时弹出软键盘并且点击键盘能将内容输入到LineEdit中首先我们先实现选中LineEdit时键盘能弹出给LineEdit安装事件过滤器,重写mousePressEvent事件MainWindow.hpublic:input_key *b = new input_key; //声明弹出窗口的对象virtual bool eventFilter(QOb...

2019-08-05 11:46:31 4151 2

原创 make警告:检测到时钟错误,您的创建可能是不完整的

编译时出现这个原因是因为你改变了系统的时间,导致文件的最后修改时间比当前时钟还要晚。解决方法:touch *如果还是出现相同的错误,那是因为你的文件夹下还有文件,应该使用命令find ./ -type f |xargs touch...

2019-08-05 09:37:34 351

原创 QT 获取发射信号对象在ui界面中的对象

QObject::sender( ) 返回发送信号的对象的指针,返回类型为QObject* 。可使用qobject_cast动态类型转换成对应的发送信息的对象(对象类的基类中需要有QObject。QLineEdit* pdit = qobject_cast<QLineEdit*>(obj);if(pdit == ui->"对象名") //获得在ui界面中的对象{ ....

2019-08-02 16:43:31 1427

原创 QT 安装事件过滤器

创建事件过滤器的两个步骤:1、通过对目标对象调用installEventFilter()来注册监视对象。2、在监视对象的eventFilter()函数中处理目标对象的事件。事件过滤器一旦被注册,放发给被监视对象的被监视的事件在它们到达目的地之前就会先发给eventFilter()函数。如果在事件处理函数中没有被处理,它将把事件发送给指定目标MainWindow::MainWindow(QW...

2019-08-02 16:20:40 613

原创 QT IP输入框的实现

QT没有提供完整的IP输入框,如果只用正则表达式和LineEdit不可能实现像Windows下那样的IP输入框。于是我便在网上百度到可以使用四个LineEdit和三个Label可以实现像Windows下那样的IP输入框。网上的几乎都是一个界面中只有IP的输入框,可是由于项目要求我的一个界面不可能只有IP输入框。于是便花了我差不多快一个星期的时间(花的时间有点长)终于实现了我想要的效果。流程图:...

2019-08-02 15:51:46 1785 4

原创 QT warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget1'.

解决方案:用文本编辑器打开.ui文件,找到重名的layoutWidget并进行修改,使其名字不一样。修改结果:

2019-07-28 16:14:31 2329 1

原创 为combobox下拉列表中的内容设置图标

效果图:1.在你的文件下添加资源文件2.创建完文件后会自动打开该资源文件,这里需要先在下面添加前缀,就是点击添加按钮,然后选择前缀,默认的前缀是“/new/prefix1”,这个可以随意修改(不要出现中文字符),我们这里因为要添加图片,所以修改为/wifi。然后再按下添加按钮来添加文件,这里最好将所有要用到的图片放到项目目录中。将你所要插入的图片复制到该工程的文件下加入代码fo...

2019-07-23 19:24:51 1629

原创 QT出现QMetaObject::connectSlotsByName: No matching signal for on_open_dhcp_clicked()

编译qt代码时出现如下情况:原因:是因为在用VistalStudio里的QtEditer可以自动调用Qt中“connectSlotsByName”即“按空间名称关联槽”的方式进行关联,对应的函数必须写成“on_控件名_信号名”的格式;或者也可以通过connet函数人为显式地将信号和槽关联起来。但是,如果采用显式connect的方法的同时,又将槽函数的名字起成了“on_控件名_信号名”的格式,那...

2019-07-22 20:08:32 8444 3

原创 算法笔记一(带头结点链表的基本操作(创建、查找、插入、删除、打印))

一、创建链表首先定义一个node型的结构体struct node{ typename data; //数据域 node *next; //指针域 };创建node * create(int array[n]){ node *p,*head,*pre; //pre保存当前节点的前驱节点,head为头结点 head = ...

2019-07-17 14:37:09 473

原创 QT5.8交叉编译安装到树莓派

一.工具准备1.下载QT5.8源码qt-everywhere-opensource-src-5.8.0.tar.xz2.下载交叉编译工具arm.tar.gz3.下载tslib1.4arm交叉编译的安装将"arm.tar.gz"解压到ubuntu的系统的文件夹“usr/local/arm”...

2019-06-30 17:40:50 753

原创 linux下各种压缩解压命令

.tar.gz压缩:tar -czf xx.tar.gz dir file解压:tar -xzf xx.tar.gz -C path备注:支持文件或文件夹.tar.xz压缩:xz -d xx.tar.xz解压: tar -xvf xx.tar或tar xvJf xx.tar.xz备注:支持文件或文件夹.tar.bz2压缩:tar -cjf xx.tar.bz2 dir file...

2019-06-03 08:40:48 542

原创 使能树莓派无线上网和SSH登录

首先我们先了解树莓派是什么?Raspberry Pi(中文名:树莓派。简称:RPi):是为了学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。别看它小,视频、音频等功能通通都有,可谓是“麻雀虽小,五张俱全”。因为树莓派一般没有屏显示,我们看不到任何信息。因此我们需要可以让树莓派联网,然后通过SSH远程登录上去进行操作。树莓派第一次上电如果想连WiFi,并通过SSH登录...

2019-05-14 16:24:53 1957

原创 C++用堆栈实现将十进制数转换为N进制数

如:我们将128转换为二进制数输入格式:128 2输出格式:10000000#include <iostream>#include <stdlib.h>#include <cmath>using namespace std;#define STACK_INIT_SIZE 10#define STACK_INCREMENT 2#define...

2019-05-12 08:51:01 2877

原创 QT实现简单计算器功能

效果图:1.定义一个类名expr,基类选择dialog,也可以选择默认的类名与基类单击下一步,完成。就完成了项目的创建。2.在该项目文件下的界面文件中双击.ui文件,到界面布局3.根据你所需要实现的功能添加的按钮并进行相应的布局4.布局完成后,就是实现将相应按钮的功能,添加相应的槽函数添加槽函数有两种方式:第一种:使用connect(界面中的哪个按钮,发出了怎样的信号,谁,执...

2019-05-04 21:31:39 7881 3

转载 malloc与realloc的区别

在程序的执行期间分配内存时,内存区域中的这个空间称为堆(heap)。还有另一个内存区域,称为栈(stack),其中的空间分配给函数的参数和本地变量。在执行完该函数后,存储参数和本地变量的内存空间就会释放。堆中的内存是由程序员控制的。在分配堆上的内存时,由程序员跟踪所分配的内存何时不再需要,并释放这些空间,以便于以后重用它们。使用动态内存很明显的好处就是:不需要预先分配存储空间且分配的空间可以根据...

2019-05-03 11:04:35 248

原创 C语言编写简单的sql数据库

首先我们先了解sql语句的几个基本操作函数的函数原型打开或创建数据库:sqlite3_open(const char *filename, sqlite3 **ppDb)如果filename为NULL或者为 ':memory:'那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。如果文件名 filename 不为 NULL...

2019-04-20 11:04:14 8332 1

原创 静态库和动态库的区别及生成方式

静态库静态库文件名的命名方式是“libxxx.a”,库名前加”lib”,windows和linux下都是后缀用”.a”,“xxx”为静态库名。链接时间: 静态库的代码是在编译过程中被载入程序中。链接方式:静态库的链接是将整个函数库的所有数据都整合进了目标代码。这样做优点是在编译后的执行程序不在需要外 部的函数库支持,因为所使用的函数都已经被编进去了。缺点是,如果所使用的静态库发生更新改变,...

2019-04-19 17:07:06 470

原创 简单Makefile的编写

在一个较大的工程中,工程的源文件按不同的类型、功能、模块分类,这样给我们在编译的过程中就增加了较大的工程量,并且有些还有可能要进行一些较为复杂的操作。编译一次还可以,但我们在调试的过程中不可能只编译一次,为了解决这个麻烦,做到一劳永逸。我们就可以通过编写makefile将这些需要执行的步骤写进去。<因为makefile就像一个shell脚本语言一样,也可以执行操作系统的命令。>然后调用...

2019-04-19 16:13:56 138

原创 边缘触发及水平触发的区别

边缘触发(edge-triggered)简称:ET,它只支持非阻塞socket。你可以设定一个值,当到达这个值时才会触发。它只通知一次。如果你不对其事件进行处理,它将会将其丢弃。水平触发(level-triggered)简称:LT,它支持阻塞和非阻塞两种模式,它是一有事件发生触发,如果你不其进行处理,它不会将事件丢弃,它将会一直提示你。...

2019-04-19 11:09:57 1319

原创 五种网络IO模型及select、poll和epoll的区别

首先我们从他们所占有的平台来看select 是跨平台的 windows、unix、linux下都有poll 在linux、unix下有,windows下没有epoll 只有linux特有,unix和windows下没有五种网络IO模型:同步阻塞IO:当用户线程调用请求(如调用read(),write(),listen()等接口),内核就会等待数据的到来,数据到来时实行数据拷贝,...

2019-04-19 10:54:34 2568

原创 SSH上传代码git的步骤

1.如果没有安装git命令执行 命令sudo apt-get install git安装git2.使用git clone 命令从服务器上下初始代码 git clone 在你的当前路径下将多出一个文件夹

2019-04-15 13:31:29 781

原创 STM32 cubeMX下配置STM32单片机使无源蜂鸣器输出PWM波并放音乐

首先我们先了解STM32L系列的产品,STM32L与STM32F系列相比,STM32L精简一些外设,性能上没有变化,只是STM32L更适合于低功耗平台,同时它也具有STM32F系列的特点。好了不扯太多了(其实多了我也不知道),回到正题,如何使蜂鸣器输出PWM波并放音乐呢?有如下几个步骤:1.首先我们要了解定时器(timer)timer分为三种:高级定时器(tim1,tim8),基本定时器(t...

2019-03-22 12:26:32 13880 7

原创 STM32 cubemx下配置无源蜂鸣器输出PWM波并放音乐代码两只老虎

enum{UNUSED=0,DO,RE,MI,FA,SO,LA,XI,DO1,RI1,TONE_MAX,};uint16_t tone_freq[TONE_MAX] = {0, 1047, 1175, 1319, 1397, 1568, 1760, 1967, 4186, 4698 };typedef struct tone_s{int tone;int...

2019-03-22 12:24:59 6797

原创 QT设置窗体标题及背景颜色

1.设置标题*在widget.cpp文件下的Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget){ }这个函数中加上setWindowTitle(“标题”);如:把标题设为计算器setWindowTitle(“计算器”);**2.设置窗体背景颜色**在同样的函数中加上this-&gt;s...

2019-03-17 10:05:38 28577 3

原创 变量的存储类型

1.auto :一时性存储,其存储空间可以被若干变量多次覆盖使用。2.register:存放在通用寄存器中。(自动(auto)变量存放在内存中,寄存器变量存放于CPU中,对寄存器变量的访问比自动变量访问更快,效率更高。)3.extern:在所有函数和程序段中都可引用。4.static:在内存中以固定地址存放的,在整个程序运行期间都有效。...

2019-03-10 20:26:25 123

原创 C++实现数字反转

1.现将数字n对10取余2.再将数字n对10取整3.循环第一,二步即可#include &lt;iostream&gt;using namespace std;int main(void){ int n,right_digit; cout&lt;&lt;"Enter the number:"; cin&gt;&gt;n; cout&lt;&lt;"The number in r...

2019-03-10 15:02:07 13999

原创 定义派生类时构造函数及析构函数调用顺序

1.调用基类的构造函数,对基类数据成员初始化;2.调用内嵌对象成员的构造函数,对内嵌数据成员初始化;3.执行派生类的构造函数体,对派生类数据成员初始化;4.调用析构函数的顺序正好与调用构造函数的顺序相反,先执行派生类的析构函数,再执行内嵌对象成员,最后执行基类的析构函数。如下代码:#include &lt;iostream&gt;using namespace std;class B...

2019-03-10 12:22:37 1096

原创 C++常成员函数与普通成员函数访问比较

常数据成员: const 类型说明符 数据成员 如:const int year常成员函数:类型说明符 函数名(参数表) const 如:void showDate() const1.常成员函数可以访问常数据成员,也可访问普通数据成员。2.常数据成员可以被常成员函数访问,也可被普通成员函数访问。3.如果将一个对象说明为一个常对象,...

2019-03-10 10:38:40 4701

空空如也

空空如也

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

TA关注的人

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