C++
斩荆披棘
这个作者很懒,什么都没留下…
展开
-
linux Qt加载动态库
1.创建一个C++库的代码,并命名为libTest2.包含接口头文件#include “…/server/common.h”并在该头文件中定义枚举类型,相关结构体,一级回调函数typedef void (*DISSECTION_PROGRESS_CALLBACK)(int taskId, float progress, FileInfo *detail);typedef void (*...原创 2019-11-25 15:29:22 · 2073 阅读 · 0 评论 -
Qt在高分辨率屏幕上加载图片
1.图片资源关联设备缩放比QPixmap Pixmg::getPixmap(const QString name, const QSize size){const QIcon &icon = QIcon(name);const qreal ratio = devicePixelRatioF();QPixmap pixmap = icon.pixmap(size * ratio)....原创 2019-10-28 16:34:56 · 902 阅读 · 0 评论 -
Qt动态布局
背景:有些数据是不定时加载的,比如连接蓝牙,连接1个蓝牙设备就会添加1个蓝牙的相关信息;1个蓝牙设备数据与另1个蓝牙设备数据不能间隔太大,但是使用QVBoxLayout就会将上面2个蓝牙占满全屏,即使使用弹簧,也只能满足2个蓝牙向上对其;假如再次连接多个蓝牙,因为前面有了弹簧,就会使全部蓝牙不能向上对其了.解决办法:动态布局.每次有新的设备连接就重新布局,再最后面添加弹簧,这样就能保证...原创 2019-10-12 20:02:01 · 366 阅读 · 0 评论 -
迭代器删除数据
遍历方式1:QList<TimezoneItem *> m_zoneList;QList<TimezoneItem *>::Iterator iter = m_zoneList.begin();for (; iter != m_zoneList.end(); iter++) {if (edit) {(*iter)->toRemoveMode();} els...原创 2019-07-29 18:03:44 · 1848 阅读 · 0 评论 -
Qt读取数据量多的xml文件(ts文件)
/ xml文件截取内容<message>**<source>Test Source</**source><translation>测试</translation><extra-contents_path>Test</extra-contents_path>通过下面loadxml函数解析后数据如下:+:...原创 2019-08-17 09:46:04 · 837 阅读 · 0 评论 -
Qt lupdate/lrelease
使用Qt lupdate更新ts文件1.Qt lupdate 生成ts文件使用下面的命令更新ts文件:lupdate search_autoComple.pro -ts res_language_chinese.ts工作原理:使用Qt在代码中调用: tr(“xxxx”),如下:tr("English");tr("Test", "wubw1");tr("Test", "wubw2");...原创 2019-08-17 10:43:22 · 3439 阅读 · 0 评论 -
Qt中文字符串排序
#include <QCollator>struct caipin{double price;QString name;};QList AddData::chinsesStringSort(QList list){QList<QString> resultList;QLocale cn(QLocale::Chinese);QCollator collat...原创 2019-09-18 17:55:16 · 3133 阅读 · 2 评论 -
Qt页面在桌面上模拟模态显示
说明:获取到键盘,鼠标的焦点,将这两个焦点设置新界面上#include <QWindow>QWidget *m_dialog = new QWidget;this->setWindowFlags(Qt::WindowStaysOnTopHint);this->setMinimumSize(400, 180);this->setSizePolicy(QSiz...原创 2019-09-23 11:48:23 · 500 阅读 · 0 评论 -
std::find_if
#if 1QList lst;lst.push_back(10);lst.push_back(20);lst.push_back(30);auto it = std::find_if(lst.begin(), lst.end(), [ this ](int value) { qDebug() << "---------- value : " << valu...原创 2019-10-10 21:00:21 · 4745 阅读 · 0 评论 -
select同时监控多个socket
1.select的参数说明#include <sys/select.h>int select( int nfds, fd_set FAR* readfds, fd_set * writefds, fd_set * exceptfds, const struct timeval * timeout);nfds:是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述符的最大值加...原创 2019-06-21 11:24:28 · 2794 阅读 · 0 评论 -
Socket粘包解决办法
变量说明:char msg : 用于存储从socket读取的数据head.length:这个变量也是右socket传过来,第一次先传长度(或包含长度的结构体)int recvNum:用于存储read socket数据的实际长度;(QTcpSocket mp_qTcpSocket; ->这个是指用于通讯的socket) char* msg = new char[head....原创 2019-06-20 21:08:24 · 612 阅读 · 0 评论 -
Qt读写配置文件
1.声明一个QSetting对象QSettings *m_psetting = nullptr;2.设置Config.ini路径QString configFileName = QCoreApplication::applicationDirPath() + “/Config.ini”;3.根据Config.ini路径newQSetting对象m_psetting = new QSett...原创 2019-06-20 11:03:45 · 7867 阅读 · 1 评论 -
QT将xxx.bin文件转化为图片
QT将xxx.bin文件转化为图片转化方法具体实现转化方法1、先将xxx.bin文件的路径转化成QString;2、用将QString赋值给QFile,然后打开QFile文件;3、将文件读取到QByteArray中;4、将QByteArray赋值给QImage;5、使用QString指定一个存储QImage的路径;6、将QImage保存在QSting指定的路径。声明:转化bin文件...原创 2019-02-20 21:56:19 · 1839 阅读 · 0 评论 -
C++ 虚函数、纯虚函数
1.虚函数#include &lt;QDebug&gt;class Animal{public:virtual void animal();}void Animal::animal(){qDebug()&lt;&lt;“What is the animal”;}当基类函数为虚函数时,必须要实现这个虚函数,否则会报下面的错误即要实现基类Animal的animal函数cla...原创 2019-03-04 16:50:14 · 204 阅读 · 0 评论 -
C/C++中命令行参数argc , argv[]理解
*main(int argc,char argv[])1.参数说明(1).argc:输入参数的个数,以空格区分输入的为下一个参数(2).argv[]:为指针的指针(char **argv / char *argv[] / char[ ][ ],argv是一个指针数组)说明:main(int argc,char *argv[]),其中参数的写法可以自行修改(3).argv[0]:输入程序路...原创 2019-03-04 17:38:46 · 1268 阅读 · 0 评论 -
C++11新特性:for(auto)即for range循环
C++11这次的更新带来了令很多C++程序员期待已久的for range循环详细见下面例子#include <iostream>#include <stdio.h>#include <stdlib.h>#include <vector>#include <map>using namespace std;int main(i...原创 2019-03-19 16:23:32 · 4586 阅读 · 0 评论 -
C++深浅拷贝
我的理解当结构体中没有指针时,可进行浅拷贝,数据也会从一个结构体拷贝到另一个结构体(两个结构体都存一份数据)。但当结构体中有指针的时候,假如使用使用浅拷贝,会使两个结构体使用的指针都指向同一个内存地址,在析构的时候会造成内存泄漏。深拷贝:需要对含有指针的结构体,使用“new xxx”申请新的内存空间去存储拷贝的数据浅拷贝:最简单的可以直接使用 “=”进行赋值,不涉及到手动申请内存空间项目背...原创 2019-04-13 20:00:02 · 606 阅读 · 0 评论 -
将1970往后的秒数转化为年月日时分秒的格式
QDateTime current_date_time = QDateTime::currentDateTime(); current_date_time.toTime_t(); struct tm *p; //比如123456789是从1970往后走过的微秒时间 //将微秒 转化为 秒 , 再将秒转化为 time_t time_t t = static_cast<time_t...原创 2019-04-25 21:01:59 · 2362 阅读 · 0 评论 -
undefined reference to symbol 'dlclose@@GLIBC_2.2.5'(Qt 调用静态库从mac换到ubuntu 16.04.10报错)
说明在pro文件里面使用:LIBS +=-L$$PWD/Qssh/lib -lQSsh这样写的时候在mac上可以正常运行,但是在ubuntu上运行就会报错(libQSsh.a请自行换成linux版本的)Issies编译器输出/usr/bin/ld: /home/archermind/Desktop/baidu/cute_view/Qssh/lib/libQSsh.a(botan.o): ...原创 2019-05-20 16:58:31 · 3351 阅读 · 6 评论 -
Qt播放本地目录的图片
主要功能函数说明1.获取手动打开的本地目录//将取到的目录传给子线程QString directory = QDir::toNativeSeparators(QFileDialog::getExistingDirectory());if (directory.isNull()) {return;}SPlayerPictureThread::getInstance().requestS...原创 2019-05-28 15:05:22 · 1099 阅读 · 0 评论 -
C++ byteToInt,intToByte
以下均为小端cpu1字节 uint8_t2字节 uint16_t4字节 uint32_t8字节 uint64_t(1) bytetoInt这个为大端struct test{char pCount[4];};test st;//将char[4]转化成int,char[3]为低8位int count = (st.pCount[0]&lt;&lt...原创 2019-02-20 22:21:38 · 1147 阅读 · 0 评论