C++
文章平均质量分 81
我肚子好饿
人笨就要多记
展开
-
c++多线程笔记1
https://www.bilibili.com/video/BV1Yb411L71、 创建线程:thread myobj(sp); //sp是一个函数的名,即指向该函数的指针这句话中创建了一个线程,并且设置线程的起点,即执行的任务。并且开始执行。2、join的作用:阻塞主线程,让主线程等待子线程执行完毕,然后主线程再往下执行。#include <iostream>#include <thread>using namespace std;void sp() {原创 2021-08-01 01:02:07 · 326 阅读 · 0 评论 -
c++中void指针记录
void *numericAddress;numericAddress = &((struct sockaddr_in6 *) address)->sin_addr;这是c语言socket编程中的代码,一开始还以为是一个函数指针,看了后面的调用,发现就是一个void指针,不是它的指向是void,而是这个指针的类型是void。void的定义是不适用于变量的定义的,void指针也无法直接用取指符取指。void指针:可以模仿书上的代码定义一个void指针。在对其内容进行拷贝时,由于无法定原创 2021-06-21 21:59:06 · 287 阅读 · 2 评论 -
C++学习笔记(初始化列表,左右值,链接库的显式调用和隐式调用,预处理指令,内联函数,多态、虚函数,野指针、悬空指针、智能指针)
https://www.jianshu.com/p/34a2a79ea947原创 2021-05-18 21:41:32 · 451 阅读 · 8 评论 -
C++学习笔记(曾经我看不懂的代码2:基于范围的for循环、auto使用、stl容器、template模板、lambda表达式、结构体继承、仿函数)
initializer_list lst容器template模板智能指针原创 2021-04-21 20:37:08 · 726 阅读 · 0 评论 -
qt笔记2021-4-13 (1、qtcreator项目和vs项目转换 2、qt项目兼容xp系统运行 3、使用提升为来替换控件类)
vs2015安装qt环境qt拓展原创 2021-04-13 18:30:36 · 928 阅读 · 0 评论 -
C++学习笔记(曾经我看不懂的代码1:引用、重载、using和typedef、函数指针和指针函数、单双冒号的用法、static_cast和dynamic_cast)
直接使用int型作为参数://普通int 计算#include <iostream>using namespace std;void func( int a ,int b ,int c,int d){ d=a+b+c; //改变的是局部变量 d 的值}int main() { int p; func(1,2,3,p); cout<<p; return 0;}//输出结果 0指针作为参数运算://指针计算#inclu原创 2021-04-06 20:25:31 · 433 阅读 · 0 评论 -
qt 学习笔记(QSettings读写ini文件,new出来的控件的qss不继承到子控件,QVariant使用及存取各种类型,信号传递图片、自定义结构体、QVariant格式、传递类对象、传递控件)
在pyqt软件中加入了训练模型和检测功能,由于训练模型和检测比较耗时,所以放到了线程中跑。但是突然想到一个问题,怎么把线程里跑出来的检测结果图片放到主界面显示。于是乎一番搜索后,发现可以通过信号传递QVariant来实现。下面以Qt为例,...原创 2021-03-30 19:18:29 · 986 阅读 · 0 评论 -
C++ Qt (释放界面类内存,让控件一直处于变化状态)
1、关闭时界面类时,自动释放内存:通过以下代码,点击按钮调起界面类。运行结果是:界面类显示,200ms后隐藏,200ms后显示。void MainWindow::on_pushButton_clicked(){ Dialog *dialog1 = new Dialog(this); dialog1->show(); _sleep(200); dialog1->close(); _sleep(200); dialog1->show();原创 2021-03-23 19:47:26 · 1949 阅读 · 0 评论 -
C++ qt5学习笔记 2021-3-8(1、访问控件中的子控件,在自建的控件中使用。2、重绘combobox。3、qt中使用opencv,及异常问题的解决。4、qt中配置海康相机。)
1、访问控件的子控件:(1)访问控件中的控件:想要访问控件的控件时,使用下面的两种方法:QObject::findChild(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) constQList QObject::findChildren(const QString &name = QString(), Qt::FindChildOptions o原创 2021-03-08 19:54:19 · 731 阅读 · 2 评论 -
qt5 (1)使控件跟随窗口放缩而改变位置和改变大小 (2)控件自动适应不同大小的屏幕
在paintEvent事件中控制坐标:原创 2021-01-19 17:25:42 · 4887 阅读 · 1 评论 -
qt5 做的一个类似qq的界面
遇到的问题:1、想让lineedit只显示下边框,但是开发过程中试验了很多次都不知道怎么解决,后来想起之前写了html代码得到了灵感。解决方案:1、试验了很多次,必须首先设置上边框的线宽,然后才能设置其他边框的线宽。...原创 2021-03-01 18:59:59 · 898 阅读 · 4 评论 -
c++ qt 学习笔记 2021-2-26(QLabel的对齐方式等一些属性,QLabel自适应文字大小,QLabel播放gif,动态的QQ消息气泡框)
1、QLabel的对齐方式等一些属性:(1)对齐方式:QLabel对齐的方法:Qt::Alignment alignalignment() const; //获取对齐方式void setAlignment(Qt::Alignment align); //设置对齐方式Qt::Alignment属性:Qt::AlignLeft //水平方向靠左。Qt::AlignRight //水平方向靠右。Qt::AlignHCenter //水平方向居中。Qt::AlignJusti原创 2021-02-26 18:41:56 · 7007 阅读 · 0 评论 -
c++ qt 2021-2-25(界面类之间传参,实例化界面类时就传递参数的方法,点击调起动态页面)
1、界面类之间:想要在界面类之间传递参数。界面类本质上还是两个类,所以常用的两个方法:(1) 直接通过对象访问成员变量或成员函数进行赋值:比如我在界面类A中定义两个public字符串: QString a; QString b;然后在界面类B中实例化A,然后就可以对该对象的成员变量a、b进行赋值了。如:chat_box *chat_box1 = new chat_box(this,"aa","bb","cc");chat_box1->a = "a";chat_box1-原创 2021-02-25 20:41:02 · 1081 阅读 · 1 评论 -
qt 给容器中的控件添加信号槽
之前做的将动态创建的控件,放到容器中,从而可以使用数组访问,现在记一下怎样给它们设置事件。1、实现思路:比如我创建了10个按钮,每创建一个,我就构建一个信号槽的连接。由于我不能构建太多的槽函数,所以,这10个按钮我都绑定到同一个槽函数上去。又一个问题来了,问题是我该怎么区分我点击的哪个按钮?其实只要在connect中将按钮在容器中的位置传递到槽函数中。2、详细操作:以下将接着:https://blog.csdn.net/qq_36780295/article/details/113860352 来原创 2021-02-23 16:38:07 · 887 阅读 · 0 评论 -
c++ Qt5学习笔记 2021-2-22 (setContentsMargins()作用,设计布局实现的QQ消息列表,自定义控件来实现动态添加,使用数组来控制自定义控件)
1、setStyleSheet()和setStyle():通过已有控件,设置qss修改,但是用起来较为单一。之前写过很多了,不再多说了。2、paintEvent事件:即将一些原有的图形画到控件上。比如在某个按钮或label的右侧有一个小箭头:就不需要想我以前一样傻乎乎的放一个label在那里,把图案画到按钮上就行。除此之外,找一整张这样的图片,或者设置padding属性调整图标位置和大小也可以。paintEvent使用方法之前写过。3、qml4、init5、自定义插件:在Qt中创建控件项目原创 2021-02-22 20:24:21 · 3299 阅读 · 3 评论 -
c++ 类和结构体
1、类:(1)使用:#include <iostream>using namespace std;class family //类名{public: //共有成员 int son; bool father; char mother; void fun();private: //私有成员 void room(); protected: //保护成员原创 2021-01-27 10:16:33 · 1365 阅读 · 0 评论 -
c++ Qt5学习笔记 2021-1-21(文件系统QFile、QFileInfo、QDir、QFileSystemWatcher等使用,读取文本显示乱码,QDataStream二进制字节流读写)
文件目录操作相关类:QFile:除了打开文件操作外,QFile还有复制文件、删除文件等功能。QCoreApplication:用于提取应用程序路径、程序名等文件信息。QFileInfo:用于提取文件的信息,包括路径、文件名、后缀等。QDir:用于提取目录或文件信息,获取一个目录下的文件或目录列表,创建或删除目录和文件,文件重命名等操作。QTemporaryDir和QTemporaryFile:用于创建临时目录和临时文件。QFileSystemWatcher:文件和目录监听类,监听目录下文件的添加原创 2021-01-21 21:33:08 · 1027 阅读 · 0 评论 -
c++ Qt5学习笔记 2021-1-20 (QPainter绘图类的使用(2))
1、基本绘图原件补充:(1)QPainterPath:QPainterPath是绘图操作的集合,可以按照预设的路线进行绘图。QRect rect1(380,380,200,200);QPainterPath path;path.addEllipse(rect1); //路径中添加椭圆path.addRect(rect1); //路径中添加矩形QPainterPath path1;QFont font2;font2.setPixelSize(25);path1.addTex原创 2021-01-20 21:35:05 · 1232 阅读 · 1 评论 -
c++ Qt5学习笔记 2021-1-18(QPainter绘图类的使用(1))
1、一些理论:基本绘图类:QPainter、QPaintDevice和QPaintEngine。绘图事件:void wiget::paintEvent(QPaintEvent *event){}paint事件在窗口刷新时触发,如最大化最小化,拖动窗口边缘时也会触发。主要属性:(1) pen:控制线条颜色宽度线性。(2) brush:设置一个区域的填充特性。(3) font:用于绘制文字。2、基本使用:在mianwindow.h中引入QPainter:#include <QPa原创 2021-01-19 23:06:58 · 1436 阅读 · 2 评论 -
c++ Qt5 学习笔记 2021-1-18 (内存泄露释放,事件过滤器中的键盘输入事件,设置程序图标,QSharedMemory共享内存的使用)
1、内存释放:内存泄漏:内存空间使用完毕之后未回收。对于new出来的对象,用完需要手动delete释放。在Qt中:不需要使用delete释放内存的情况有:(1)该对象是QObject的派生类。(2)该对象的存在父类,当父类被释放时,其派生类也会被释放。如,在一个界面类A中,初始化的另一个界面类B,要么就将这个界面类A作为界面B的父类,然后delete界面类A。要么手动delete界面类B。2、事件过滤器中的键盘输入事件使用:事件过滤器中直接获取的QEvent不含key()属性,所以需要先获原创 2021-01-18 17:01:16 · 887 阅读 · 0 评论 -
c++ Qt5 学习笔记 2021-1-15(2)(多媒体模块的应用:QMediaPlayer、QMediaPlaylist、QVideoWidget的使用,音乐播放器,视频播放器)
大部分资料整理自Qt5.9 C++开发指南,其余部分资料从网络中获取和整合,代码和演示部分都是我修改和试验而来。在.pro文件中引入多媒体:QT += multimedia如果需要使用视频功能,还需引入:QT += multimediawidgets(引入了QVideoWidget和QGraphicsVideoItem等)想要使用这些接口播放音视频文件时,首先需要在头文件中进行引入:#include <QMediaPlayer>#include <QVideoWidget&g原创 2021-01-15 18:49:50 · 2391 阅读 · 2 评论 -
c++ Qt5学习笔记 2021-1-15(1)(槽函数自动绑定信号,qlabel添加超链接,Qt程序启动动画,getOpenFileName初始页面、标题、选择文件格式设置)
qDebug() << QDir::currentPath();qDebug() << QDir::homePath();qDebug() << QDir::rootPath();qDebug() << QDir::tempPath();原创 2021-01-15 11:10:46 · 502 阅读 · 0 评论 -
C++ Qt5学习笔记 2020-12-23(TCP传输文件)
参考自:https://www.cnblogs.com/doker/p/11158230.html在此基础上做了一些修改。原创 2020-12-23 20:00:42 · 509 阅读 · 5 评论 -
C++Qt5学习笔记 2020-12-21(网络编程2:udp单播、广播、组播,HTTP下载网络文件)
1、QUdpSocket实现UDP通信:(1)通信概述数据接收端项目:udp_test.pro中引入network:QT += network//mainwindow.h中public: QUdpSocket *udpSocket;public slots: void onSocketStateChange(QAbstractSocket::SocketState socketState); void onSocketReadyRead(); //读取socket传入原创 2020-12-21 15:17:45 · 2025 阅读 · 1 评论 -
C++ Qt5学习笔记 2020-12-16(网络编程1:QHostInfo类,QNetworkInterface类,TCP服务端和客户端通信)
TCP在.pro中添加代码:QT += network原创 2020-12-16 20:23:32 · 884 阅读 · 0 评论 -
C++ Qt5学习笔记 2020-12-11(QTreeWidget使用添加项目,及其他相关操作)
1、QTreeWidget添加项目:QTreeWidget的项目和列都可以直接在ui中双击添加,假设添加2列为例:使用代码添加项目://初始化TreeWidget项目QTreeWidgetItem *item1=new QTreeWidgetItem;//项目图标item1->setIcon(0,button_ico_add_friends); //列数//图标大小item1->setSizeHint(0,QSize(20,20));//项目文字item1->set原创 2020-12-11 22:02:04 · 2738 阅读 · 0 评论 -
C++ Qt5学习笔记 2020-12-10(qlabel对齐方式,dateEdit显示日历,设置滚动条及其一些属性,qss中使用参数,QToolBox的使用,及以此实现简易的QQ好友列表)
1、qlabel对齐方式: ui->label->setWordWrap(true); //自动换行 ui->label->setAlignment(Qt::AlignTop); //上对齐 //ui->label->setAlignment(Qt::AlignBottom); //下对齐2、dateEdit显示日历:ui -> dateEdit->setDateTime(QDateTime::currentDa原创 2020-12-10 16:37:57 · 1585 阅读 · 0 评论 -
C++ Qt5学习笔记2020-12-8(实现三连弹出窗口)
运行结果:看一下效果:原创 2020-12-08 14:37:25 · 800 阅读 · 0 评论 -
C++ Qt5学习笔记2020-12-4(pushbutton文字增加下划线,broder-radius圆角四个角和弯折程度,修改checkbox复选框中的小方框)
1、pushbutton文字增加下划线:qss中增加text-decoration:underline;属性:ui->qq_name->setStyleSheet("QPushButton#qq_name{background:transparent;color:white;text-decoration:underline;}");运行结果:2、broder-radius圆角的使用:资料来自:https://blog.csdn.net/goforwardtostep/articl原创 2020-12-04 19:17:52 · 1714 阅读 · 0 评论 -
C++ Qt5学习笔记 2020-12-2(在窗口外区域点击时隐藏窗口,实现切换qq登录状态。鼠标悬停显示悬浮窗口,离开区域过一段时间后消失 + 鼠标停留在悬窗时就不消失,以此实现qq天气的悬浮窗口)
1、在窗口外的区域点击时隐藏窗口在该窗口的事件过滤器中添加://安装过滤器installEventFilter(this);//窗口不隐藏bool login_condition::eventFilter(QObject *target, QEvent *e){ if(QEvent::WindowDeactivate == e->type()) { this->hide(); //这里我是隐藏,由于我初始化写在原创 2020-12-03 15:06:25 · 1719 阅读 · 2 评论 -
C++ Qt学习笔记 2020-12-1 (setToolTip换行,定时器使用,类似QQ的设置悬浮窗口实现,pushbutton上的文字或图标左右移动)
悬浮窗口与按钮有一部分重叠,重叠部分隐藏,这样鼠标移出按钮时,已经在悬浮窗口里面了,就不会再隐藏了。原创 2020-12-02 10:23:34 · 1728 阅读 · 0 评论 -
C++ Qt学习笔记 2020-11-27(2)(listwidget设置行高,qss让选中行变色,去掉选中行虚线框,listwidget事件实现页面切换,listwidget自带信号)
1、listwidget插入数据、设置行高:(1)使用listitem对象参考自:https://blog.csdn.net/sundan308/article/details/8743069 QListWidgetItem * pItem = new QListWidgetItem; pItem->setSizeHint(QSize(100, 102)); //每次改变Item的高度 pItem->setText(u8"参数项目1"); ui->li原创 2020-11-27 17:26:05 · 4550 阅读 · 3 评论 -
C++ Qt学习笔记 2020-11-27(控件透明度,LineEdit灰色提示文字,设置按钮图标大小,设置label中文字字体、大小、粗细、颜色等,按钮实现图标在上文字在下显示,qss事件改变格式)
1、设置控件透明度//半透明QGraphicsOpacityEffect* opacityEffect = new QGraphicsOpacityEffect;opacityEffect->setOpacity(0.8);ui->link_persons->setGraphicsEffect(opacityEffect);2、LineEdit灰色背景提示文字ui->search_line->setPlaceholderText(u8"搜索");运行结果:原创 2020-11-27 11:40:34 · 2583 阅读 · 0 评论 -
C++ Qt5学习笔记 2020-11-23(自己画的虚拟键盘,让弹出窗口始终出现在指定位置,获取某个控件相对整个屏幕的坐标,show()和exec()区别)
5、虚拟键盘自己做了个虚拟键盘:原创 2020-11-25 11:46:41 · 942 阅读 · 0 评论 -
C++ Qt学习笔记 2020-11-20(主窗口边角变圆及去掉角落白色背景。只关闭窗口,不关闭整个进程。setWindowFlags设置窗口属性的一些操作。线程使用及信息的相互传递。日常报错。)
1、主窗口边角变圆及去掉角落白色背景设置边角变圆很简单,和控件的边角变圆一样:this->setStyleSheet("border-radius:5px;");就行了,但是有一个问题,因为边角的原窗口区域还在那,变圆后被白色填充。所以,想要把这个边角的白色去掉,只要让主窗口变透明就行://使窗体变透明this->setAttribute(Qt::WA_TranslucentBackground);这样边角的白色就去掉了:注: 有时使用this->setAttrib原创 2020-11-23 10:00:35 · 1474 阅读 · 0 评论 -
C++ Qt5学习笔记2020-11-18(控件的移动和放缩,lineedit只显示下边框,边框阴影,QLineEdit文本边距、密码格式、选中lineedit时的事件来切换图标)
1、控件移动和放缩与之前在pyqt移动label差不多,使用setGeometry实现:这是按钮初始时的坐标及宽高:使用setGeometry就可以在代码中重设其坐标及宽高,重设坐标则移动,重设宽高则放缩,如://向右移动 90pxui->toolButton_1->setGeometry(280, 110, 37, 18);//宽高变大2倍ui->toolButton_1->setGeometry(280, 110, 37*2, 18*2);2、结合事件过滤器实原创 2020-11-18 15:55:31 · 2424 阅读 · 2 评论 -
C++ Qt5学习笔记 2020-11-17(两种按钮,自定义关闭窗口按钮,屏蔽标题栏导致无法拖拽窗体,eventFilter事件过滤器使用及按钮悬浮改变颜色,常用event事件列表)
"border-radius:10px;" ui -> pushButton ->setStyleSheet("QPushButton {" "text-align: right;" "padding-right: 10px;" "image: url(:/55原创 2020-11-17 14:53:59 · 1423 阅读 · 5 评论 -
C++ Qt5学习笔记 2020-10-9 (将qlabel放到容器中,并使用数组对其控制)
将初始化的qlabel放到数组中之前通过拖拽label显示在区域范围内的功能中,通过for循环初始化qlabel,但想要操作控制时,无法定位到,所以把label都放到数组中。错误的方法:一开始想的太简单,像下面这样做,结果不行。在mainwindow.h中://头文件#include <QLabel>#include <QPushButton>//创建控件数组QPushButton *button[10];QLabel *qlabel_group[64];在m原创 2020-10-09 19:09:41 · 2852 阅读 · 3 评论 -
c++ Qt5学习笔记 2020-10-7(鼠标点击移动事件,改变鼠标样式,模拟鼠标拖拽控件)
label显示边框ui -> label_14 -> setStyleSheet("border:1px solid black;");鼠标点击移动事件//mainwindow.h中添加头文件#include <QMouseEvent>//添加点击事件指针protected: void mousePressEvent(QMouseEvent *e);//鼠标点击事件 void mouseMoveEvent(QMouseEvent *e);//鼠标移动事件原创 2020-10-07 21:04:42 · 1094 阅读 · 0 评论 -
C++ QT5学习笔记 2020-9-21(托盘球最小化,在qt中使用excel,点击按钮跳转一个新窗口,将table widget中的内容传递到excel中并导出)
Qt中使用excel打开项目的.pro文件,在开头添加:QT += axcontainer原创 2020-09-21 18:31:28 · 478 阅读 · 4 评论