- 博客(670)
- 资源 (21)
- 收藏
- 关注
原创 Qt读取ini配置文件
QMap<QString, QString> ReadIni::getIni(QString group){ if (group.isEmpty()) { return QMap<QString, QString>(); } QSettings set("F:/work/qtpro/erpsys/ErpSys/config/config.ini", QSettings::IniFormat); set.beginGroup(gr.
2021-10-23 10:36:44
656
原创 qt controls2 calendar
qt controls2不再提供Calendar控件,而是在import Qt.labs.calendar 1.0提供 Calendar A calendar namespace CalendarModel A calendar model DayOfWeekRow A row of names for the days in a week MonthGrid
2021-10-18 19:44:04
428
原创 c++强制类型转运算符重载
强制类型转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。重载强制类型转换运算符时,不需要指定返回值类型,因为返回值类型是确定的,就是运算符本身代表的类型。#include <iostream>using namespace std;class MyComplex{ double real; double imag;public: MyComplex(double r = 0, double i = 0) : real(r),
2021-09-29 10:59:05
947
原创 c++浅拷贝和深拷贝
同类对象之间可以通过赋值运算符 = 互相赋值。如果没有经过重载, = 的作用就是将赋值号左侧对象的值一一赋值给左侧对象,这相当于值的拷贝,称作"浅拷贝"。如果赋值对象中涉及指针或引用,则它们之间是相互关联的,一个值变化了,另一个值也跟着变化。因为对象中的指针指向的是同一个内存地址。重载赋值运算符后,赋值语句的功能是将一个对象中指针成员变量指向的内容复制到另一个对象中指针成员变量指向的地方,这样的拷贝称作”深拷贝“。浅拷贝示例#include <iostream>using nam
2021-09-29 09:47:05
345
原创 c 二叉树模拟
头文件 tree.h#ifndef _TREE_H_#define _TREE_H_#include <stdbool.h>#define SLEN 20typedef struct item{ char petname[SLEN]; char petkind[SLEN];} Item;#define MAXITEMS 10typedef struct trnode{ Item item; struct trnode* left; struct trn
2021-09-22 22:51:27
128
原创 c 队列模拟
头文件 queue.h#ifndef _QUEUE_H_#define _QUEUE_H_#include <stdbool.h>typedef int Item;#define MAXQUEUE 10typedef struct node{ Item item; struct node* next;} Node;typedef struct queue{ Node* front; Node* rear; int items;} Queue;/**
2021-09-22 21:22:38
140
原创 c 链表模拟
链表头文件 list.h#ifndef LIST_H_#define LIST_H_#include <stdbool.h>#define TSIZE 45struct film{ char title[TSIZE]; int rating;};typedef struct film Item;typedef struct node{ Item item; struct node* next;} Node;typedef Node* List;
2021-09-21 21:48:07
105
原创 c 十进制转二进制
void to_binary(unsigned long n){ int r; r = n % 2; if (n >= 2) { to_binary(n / 2); } putchar(r == 0 ? '0' : '1'); return;}结果:Enter an integer(q to quit):5Binary equivalent: 101Enter an integer(q to quit):分析:在二进制中,奇数的末尾一定是1,偶数的.
2021-09-19 19:02:20
534
原创 递归,说来简单,理解还是比较难的。
#include <stdio.h>void up_and_down(int);int main(void){ up_and_down(1); return 0;}void up_and_down(int n) { printf("Level %d: n location %p \n", n, &n); // #1 if (n < 4) { up_and_down(n + 1); } printf("Level %d: n location %p.
2021-09-19 18:32:13
216
原创 c之围棋与小麦
古时候,印度有个国王很爱玩。一天,他对大臣们说,希望得到一种玩不腻的玩意儿,谁能贡献给他,将有重赏。 不久,有个聪明的大臣向他献上一种棋子,棋盘上有64个格子,棋子上刻着“皇帝”、“皇后”、“车”、“马”、“炮”等字。下这种棋子,是玩一种变化无穷的游戏,确实让人百玩不厌。国王就对那个聪明的大臣说:“我要重赏你。说吧,你要什么,我都能满足你。” 那个大臣说:“我只要些麦粒。” “麦粒?哈,你要多少呢?” “国王陛下,你在第一格棋盘上放1粒,第二格上放2粒,第三格上放4粒,第四格上放8粒……...
2021-09-17 20:26:22
392
原创 c语言scanf_s输入字符串报错
在visual studio上使用scanf_s输入字符串报错,如scanf_s("%s", name);这是因为scanf_s在读取字符串时,需要提供一个数字以表明读取多少个字符,以防止溢出。scanf_s("%s", name, 20);
2021-09-16 21:09:25
4724
1
原创 gin 上传图片到阿里云oss
上传函数import ( "io" "Festival/app/common/cfg" "github.com/aliyun/aliyun-oss-go-sdk/oss")func OssUpload(key string, file io.Reader) (string, error) { ossCfg := cfg.Instance().Oss client, err := oss.New(ossCfg.Endpoint, ossCfg.AccessKeyId, ossCfg
2021-07-16 15:34:16
658
原创 go 读取yml
mysql: dsn: "root:123456@tcp(172.17.0.1:3306)/articles?charset=utf8mb4&parseTime=True&loc=Local" max_open: 100 max_idle: 10 life_time: "+3s" log: trueredis: addr: "172.18.0.1:2379"引入包_ "github.com/jinzhu/gorm/dialects/mysql" ".
2021-07-16 15:31:54
971
原创 sqlx 在把timestamp转为go的time.Time报错
sqlx 在把timestamp转为go的time.Time报错:sql: Scan error on column index 6: unsupported Scan, storing driver.Value type []uint8 into type *time.Time这个只需要在数据库链接字符串上加上parseTime=true就可以了,表示查询结果字段转为时间,如果不加上,sql查询出来的是0001-01-01 00:00:00 +0000 UTCroot:123456@tc
2021-07-08 11:11:53
901
原创 c++标准库第六章标准模板库
一、STL容器元素必须满足3个基本要求:1、元素必须可复制或可搬移,即元素类型必须隐式或显式提供一个copy或move构造函数。被制造出来的拷贝应该与其原件等效2、元素必须可被assignment操作符加以搬移或赋值。容器和算法以新元素覆写旧元素时用的是assignment操作符3、元素必须可被一个析构函数销毁除此外,还应当满足:对于序列式容器而言,元素的default构造函数必须可用。可用在没有给予任何初值的情况下创建一个非空容器,或增加容器元素的个数,这些元素都将以default构造
2021-06-30 22:59:17
485
2
原创 c++标准库第五章通用工具5.2智能指针
一、c++11开始,标准库提供了两大类型的智能指针1、shared_ptr实现共享式拥有。多个智能指针可以指向相同对象, 该对象和其相关资源会在“最后一个reference被销毁”时被释放,标准库提供weak_ptr, bad_weak_ptr和enable_shared_from_this等辅助类2、unique_ptr实现独占式拥有或严格拥有。保证同一时间只有一个智能指针可以指向该对象二、可以像使用任何其他指针一样使用shared_ptr,可以赋值,拷贝,比较,也可以使用操作符*和->
2021-06-26 15:08:49
192
原创 gorm记一次joins查询不出数据
在使用Joins查询时,使用了Scan自定义接口获取数据type UserRouteResult struct { Id uint `json:"id"` Cover string `json:"cover"` Name string `json:"name"` Step uint `json:"step"` CreatedAt time.Time UserId uint `json:"userId"`}但在结果中UserId是0,也没有报错,把sql打印出来使用m
2021-06-25 16:40:37
1077
原创 c++标准库第五章通用工具5.1Pari和Tuple
一、pair 提供了直接访问对应数据成员的能力,因为pair是struct而不是class,默认所有成员都是public二、所有元素都相等,这两个pair对象才相等三、如果first相等,才继续比较second四、pair的copy构造函数有两个版本1、版本1接受相同类型的pair2、版本2是个member template,在“构造过程中需要隐式类型转换”时被调用五、如果pair对象被复制,调用的是被隐式合成的那个copy构造函数六、只有piecewise_construct作
2021-06-23 21:12:20
377
1
原创 c++标准库第四章一般概念
一、以前的头文件扩展名很多,包括.h, .hpp, .hxx,现在不需要扩展名:#include <iostream>二、#include也适用于C标准头文件,但必须采用前缀符合c,如:#include <cstdlib> 对应之前的<stdlib.h>#include <cstring> 对应之前的<string.h>三、以下namespace嵌套于std内:1、std::rel_ops2、std::chrono3、s
2021-06-21 23:03:42
1213
原创 c++标准库第三章 c++语言新特性
一、lambda不可以是template二、lambda目前已不鼓励函数指明异常明细三、lambda1、 [...] {...}2、 [...] (...) (mutable) (throwSpec) (->retType) {...}3、 [=]意味着外部作用域以by value方式传递给lambda,可以读取数据,但不能改动4、 [&]意味着外部作用域以by reference方式传递给lambda,可以读取数据,也可以改动5、 为了获得by value 和 b
2021-06-21 20:46:06
176
原创 QML中的模型/视图
import QtQuick 2.0Item { width: 200 height: 200 //ListView 在水平或垂直列表中排列条目 ListModel { id: myModel ListElement {type: "dog"; age: 8} ListElement {type: "cat"; age: 5} } Component { id: myDelegate .
2021-06-21 20:44:01
290
原创 QML图像、状态和动画
import QtQuick 2.12Item { Rectangle { id: rect width: 100 height: 100 gradient: Gradient { // position定义一个从0.0 - 1.0之间的位置 // color设置颜色 GradientStop {position: 0.0; color: "red"} .
2021-06-20 22:35:21
553
原创 QML基本事件处理
import QtQuick 2.0Item { Rectangle { id: rect // MouseArea事件 MouseArea { enabled: false// 设置为false,不再处理鼠标事件 pressed:{} // 是否按住了鼠标按钮,可以实现在鼠标按下时执行一些操作 containsMouse: {} // 当前是否有光标在MouseArea上.
2021-06-20 16:52:02
639
原创 QML基本布局管理
import QtQuick 2.12Item { // 垂直排列 Column { spacing: 2 Rectangle {color: "red"; width: 50; height: 50} Rectangle {color: "green"; width: 50; height: 50} Rectangle {color: "blue"; width: 50; height: 50} } //.
2021-06-20 16:00:54
356
原创 QML基础概念
一、属性通过 “属性:值” 语法来指定二、每一个对象都可以指定一个唯一的id值三、QML提供了一个QtQuick工具栏,在编写代码时按下"Ctrl + Alt + 空格"调出,也可以右键选择“显示QtQuick工具栏”四、QML属性是类型安全的,它们只允许分配一个匹配该属性类型的值五、QML基本类型 action action类型拥有QAction的所有属性 bool true和false colo
2021-06-20 14:51:55
425
原创 effective c++第一章
一、理解c++1、c:c++仍是以c为基础的,块、语句、预处理、内置数据类型、数组、指针等都来自c2、Object-Oriented c++:c with classes,classes包括构造函数、析构函数、封装、继承、多态、虚函数等3、Template c++: c++泛型编程4、STL: c++template程序库,对容器、迭代器、算法以及函数对象的规约二、尽量以const、enum、inline替换#define三、由于常量定义通常被放在头文件内,因此有必要将指针声明为co
2021-06-18 11:53:15
117
原创 c++primer之特殊工具与技术
一、当使用一条new表达式时,实际执行了3步操作:1、new表达式调用一个名为operator new(或者operator new[])的标准库函数,该函数分配一块足够大的、原始的、未命名的内存空间以便存储特定类型的对象2、编译器运行相应的构造函数以构造这些对象,并为其传入初始值3、对象被分配了空间并构造完成,返回一个指向该对象的指针二、当使用一条delete表达式删除一个动态分配的对象时,实际指向了2步操作:(delete p|delete []arr)1、对p所指的对象或arr所指
2021-06-17 22:57:10
215
原创 c++peimer之用于大型程序的工具
一、异常处理机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理二、异常使得我们能够将问题的检测与解决过程分离开三、通过抛出一条表达式来引发一个异常四、当执行一个throw时,跟在throw后面的语句将不再被执行,程序的控制权从throw转移到与之匹配的catch模块五、控制权从一处转移到另一处,则:1、沿着调用链的函数可能会提早退出2、一旦程序开始执行异常处理代码,则沿着调用链创建的对象将被销毁六、当throw在一个try语句块内时,检查与该try块关联
2021-06-17 22:55:05
212
原创 c++primer之标准库特殊设施
一、一个tuple可以有任意数量的成员二、tuple的构造函数是explicit的,必须使用直接初始化三、make_tuple函数使用初始值的类型来推断tuple的类型四、tuple一个常见用途是从一个函数返回多个值五、当定义一个bitset时,需要声明它包含多少个二进制位六、一个随机数引擎类可以生成unsigned随机数序列;一个随机数分布类使用一个引擎类生成指定类型的、给定范围的、服从特定概率分布的随机数七、传递给分布对象的是引擎对象本身,即u(e),如果将调用写成了u(e())
2021-06-17 22:53:51
91
原创 c++primer之模板与泛型编程
一、模板定义以关键字template开始,后跟一个模板参数列表,模板参数列表以逗号分隔,用小于号和大于号包围起来二、模板参数前使用关键字class或typename三、一个非类型参数表示一个值而非一个类型,通过一个特定的类型名而非关键字class或typename四、一个非类型参数可以是一个整型,或者是一个指向对象或函数类型的指针或引用。绑定到非类型整型参数的实参必须是一个常量表达式。绑定到指针或引用非类型参数的实参必须具有静态的生存期五、函数模板可以声明为inline或constexpr,
2021-06-16 21:13:17
333
原创 c++primer之面向对象程序设计
一、通常在层次关系的根部有一个基类,其他类别则直接或间接的从基类继承而来,这些继承得到的类称为派生类二、基类将类型相关的函数与派生类不做改变直接继承的函数区分对待,对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明成虚函数三、类派生列表的形式是: 首先是一个冒号,后面紧跟以逗号分隔的基类列表四、派生类必须在七内部对所有重新定义的虚函数进行声明五、新标准允许派生类显示的注明它将使用哪个成员函数改写基类的虚函数,具体措施是在该函数的形参列表之后增加一个overrid
2021-06-16 21:12:07
103
原创 c++primer之重载运算与类型转换
一、重载运算符由关键字operator和其后要定义的运算符号组成二、对于二元运算符,左侧运算对象传递给第一个参数,右侧运算对象传递给第二个参数,除了重载的函数调用运算符operator()外,其他重载运算符不能含有默认实参三、如果一个运算符函数是成员函数,则它的第一个运算对象绑定到隐式的this指针上,因此,成员运算符函数的参数数量比运算符的运算对象总数少一个四、对于一个重载的运算符来说,其优先级和结合律与对应的内置运算符一致五、不能被重载的运算符: (::) ( .*) (.) (? :)
2021-06-14 17:22:44
178
原创 c++primer之拷贝控制
一、一个类通过定义5种特殊的成员函数来控制对象的拷贝、移动、赋值和销毁1、拷贝构造函数2、拷贝赋值运算符3、移动构造函数4、移动赋值运算符5、析构函数二、拷贝和移动构造函数定义了当用同类型的另一个对象初始化本对象时做什么; 拷贝和移动赋值运算符定义了将一个对象赋予同类型的另一个对象时做什么;析构函数定义了此类型对象销毁时做什么三、如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数:Foo(const Foo&)四、拷贝
2021-06-14 15:13:57
271
原创 go websocket
import ( "encoding/json" "fmt" "github.com/gorilla/websocket" "shopeecallback/service")type User struct { Conn *websocket.Conn UserId int64 Msg chan []byte}type Message struct { UserId int64 `json:"user_id, omitempty"` ShopId int64 `j.
2021-06-11 15:58:44
382
3
原创 c++primer之动态内存
class Foo{};template<typename T>shared_ptr<Foo> factory(T arg){ return make_shared<Foo>(arg);}template<typename T>void use_factory(T arg){ shared_ptr<Foo> p = factory(arg); // p 离开了作用域,它指向的内存会被自动释放}templat...
2021-06-09 21:47:05
167
原创 c++primer之关联容器
一、关联容器中的元素是按关键字来保存和访问的二、有2个主要的关联容器map和set三、map中的元素是一些关键字-值(key-value)对,关键字起到索引的作用,值则表示与索引相关联的数据四、set中每个元素包含一个关键字五、标准库提供8个关联容器,体现在3个维度上:1、每个容器或者是一个set,或者是一个map2、或者要求不重复的关键字,或者允许重复的关键字3、按顺序保存元素,或者无序保存六、允许重复关键字的容器名字中都包含单词multi七、不保持关键字按顺序存储的容
2021-06-06 16:40:33
133
原创 c++primer之泛型算法
bool isShorter(const string& s1, const string& s2){ return s1.size() < s2.size();}bool check_size(const string& s, string::size_type sz){ return s.size() >= sz;}void elimDups(vector<string>& words){ // 排序words,以便...
2021-06-06 11:15:40
198
原创 c++primer之顺序容器
一、顺序容器提供了控制元素存储和访问顺序的能力二、所有顺序容器都提供了快速顺序访问元素的能力,但向容器添加或删除元素以及非顺序访问容器中的元素都有不同的性能代价三、顺序容器1、vector可变大小数组, 支持快速随机访问,在尾部以外的位置插入或删除元素较慢2、deque双端队列, 支持快速随机访问,在头尾位置插入或删除元素很快3、双向链表, 只支持双向顺序访问,在任何位置插入或删除都很快4、forward_list单向链表, 只支持单向顺序访问,在任何位置进行插入或删除都很快5、
2021-06-05 16:42:36
143
原创 c++primer之IO库
一、iostream定义了用于读写流的基本类型; fstream定义了读写命名文件的类型;sstream定义了读写内存string对象的类型二、IO库 iostream istream, wistream 从流读取数据 ostream, wostream 从流写入数据 iostream, wiostream 读写流 fstream ifstream, wiftream 从文件读取数据 ofstream, w
2021-06-05 10:06:26
213
原创 c++primer之类
一、所有成员都必须在类的内部声明二、成员函数体可以定义在类内也可以定义在类外三、成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象,当我们调用一个成员函数时,用请求该函数的对象地址初始化this四、在成员函数内部,我们可以直接使用调用该函数的对象的成员,而无须通过成员访问运算符来做到这一点,因为this所指的正是这个对象,任何对类成员的直接访问都被看作this的隐式引用五、任何自定义名为this的参数或变量的行为都是非法的六、因为this的目的总是指向对象,所以this是
2021-06-04 00:03:57
125
hadoop with python
2018-07-20
微信第三方授权获取pre_auth_code
2016-04-23
ecshop+swfupload实现批量上传图片
2015-04-09
JavaScript权威指南(第6版)(中文版)
2014-05-05
PHP技术内幕
2013-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人