![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT学习
文章平均质量分 62
是谁在许愿瓶里写满了悲哀
绳可锯木断,水可滴石穿。
展开
-
qss设置颜色线性渐变
background-color:qlineargradient(x1:0, y1:1, x2:0, y2:0,stop:0 rgba(255, 250, 229, 255),stop:1 rgba(255, 251, 244, 255));原创 2021-12-29 16:20:27 · 665 阅读 · 0 评论 -
Qt实现控件的渐隐渐现动效
主要用到两个类:QGraphicsOpacityEffect和QPropertyAnimationQGraphicsOpacityEffect *opacity = new QGraphicsOpacityEffect(this);//opacity->setOpacity(0.5); //设置透明度0.5,透明范围:[0,1]ui->btn->setGraphicsOpacityEffect(opacity); //应用到需要透明变化的控件;//使用属性动画类让控件在透明度范围原创 2020-12-08 00:49:25 · 1322 阅读 · 0 评论 -
QLabel显示图片 ,并实现缩放
QImage image("c:/test.jpg");QPixmap px = QPixmap::fromImage(image);//图片缩放:w, h为宽高px = px.scaled(w, h, Qt::keepAspectRatio, Qt::SmoothTransformation);主要注意下scaled的第三个和第四个参数,Qt::KeepAspectRation是表示图片在缩放时候保持本身宽高比例,Qt::SmoothTransformtion是平滑算法,保持图片在缩放时候模糊。原创 2020-10-27 16:15:56 · 4968 阅读 · 0 评论 -
Qt 窗口指针调用close()方法之后,,,,,,
Qt 窗口指针调用close()方法之后,还能使用指针吗??QWidget *w = new QWidget(this);w->close();那么:w->isVisible()???是什么结果呢?true or false??? 还是crash??先贴一段英语壮壮B格~~ 哈哈Closes this widget. Returns true if the widget was closed; otherwise returns false.First it sends th原创 2020-05-18 19:48:03 · 1041 阅读 · 0 评论 -
nativeEvent介绍和使用
nativeEvent(const QByteArray &eventType, void *message, long *result){chASSERT(message != NULL);MSG* winMsg = static_cast<MSG *>(message);HWND hWnd = winMsg->hwnd;switch (winMsg->...原创 2019-11-05 15:00:40 · 12948 阅读 · 2 评论 -
用VS对Qt项目进行单元测试的简单总结
整个测试过程中的一些小问题记录原创 2019-10-13 20:01:23 · 815 阅读 · 0 评论 -
qRegisterMetaType的介绍
如果要在Qt信号槽中使用自定义类型,需要注意使用qRegisterMetaType对自定义类型进行注册,当然在不跨线程时使用自定义类型signal/slot来传递,可能不会出现什么问题;一旦涉及跨线程就很容易出错,回想下信号槽的作用就是用来对象与对象之间通信的,难免会跨线程,建议在使用自定义类型利用信号槽通信时,最好先通过qRegisterMetaType()将自定义类型进行注册,以免出错。如果...原创 2019-09-26 18:16:33 · 1680 阅读 · 0 评论 -
connect的第五个参数
Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。解决方法一:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。QElapsedTimer et; et.sta...转载 2019-09-19 11:23:32 · 1127 阅读 · 0 评论 -
QT使用多线程的两种方法
两种方法:继承QThread类,重写run方法(QT4.8之前使用)自定义一个继承QObject的类转移到Thread中。(和线程的交互通过信号和槽(实际上其实是通过事件)联系,QT4.8之后,官方建议这种方法)为什么使用线程:?举个例子:如果我们在写GUI程序的时候,如果某处的数据,计算比较复杂,当前主线程就会卡在这里,在具体表现就是界面会卡住。所以在这个时候多线程就起到了关键的作用...原创 2019-01-30 15:53:58 · 1541 阅读 · 2 评论 -
Qt解决中文字符为奇数个报错的问题
此刻:来到这里的每一个人应该都是被Qt一个错误折磨的头皮发麻的吧,,有时候参数类型是QString,,我们 向传入一个中文,结果就报错,(可以把中文字符串的个数改为偶数个可以解决!!!)那么,,有没有一劳永逸的方法呢?????当然!!!–请 看 下 图–。。。。。。。。终 于 搞 定 了,,,,,,感觉整个人好多了!!!!~~~~~~~~~~~~...原创 2019-01-22 18:48:40 · 1487 阅读 · 2 评论 -
Qt学习之Tcp通信
QT中TCP协议让服务器和客户端之间通信的具体流程:-----服务器流程:创建QTcpServer对象tcpServer;启动监听,调用listen函数;listen(QHostAddress::Any, 端口号);当有客户端连接时会发送newConnection信号,出发槽函数接受连接(得到一个与客户端通信的套接字QTcoSocket);connect(&tcpServer, ...原创 2019-01-25 15:35:40 · 878 阅读 · 0 评论 -
【QT学习】-----事件系统(三:事件过滤器、事件的发送)
事件过滤器前面在事件的处理方式中我们提到了事件过滤器;他能在事件到达处理函数之前获取该事件,并且可以实现在一个部件中监控其他多个部件的事件。使用事件过滤器的步骤:在.h文件中声明;bool eventFilter(QObject* obj, QEvent * event)在构造函数中为部件安装事件过滤器:例如:在textEdit 部件安装:ui->textEdit->inst...原创 2018-12-14 18:42:29 · 365 阅读 · 0 评论 -
【QT学习】----事件系统(二:定时器事件与随机数)
首先区别三个类:QTimerEvent类: 描述一个定时器事件QTimer类: 是一个定时器类(编程中大多使用这个设定定时器)QTime类: 是一个时间类,主要用于对时间的操作,他提供了大量的函数便于用户对时间进行转换和计算。开启一个定时器:int QObject::startTimer(int interval)参数说明:返回值:一个整型编号,代表这个定时器参数interval:...原创 2018-12-14 15:27:14 · 475 阅读 · 0 评论 -
【QT学习】------事件系统(一:事件的处理和传递 )
什么是事件??事件是各种应用程序需要知道的有有应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用 一个对象来表示一个事件,继承自QEvent类。常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent、定时器事件QTimerEvent。任何QObject子类都可以接受和处理事件。事件和信号的区别?二者并不相同;比如单击一下界面上的按钮,那么就会产生鼠标事件(不是按钮产生的...原创 2018-12-13 17:00:10 · 698 阅读 · 3 评论 -
【QT学习】-----容器类
Qt 库提供了一组通用的机遇模板的容器类,可以用来存储指定类型的项目。例如:需要一个QString类型大小可变的数组,可以使用QVector< QString >Qt库的容器类跟STL中的容器差不多,如果了解STL,学习qt容器就照葫芦画瓢了。顺序容器:**QList< T >:使用append()、prepend()在列表的两端添加项目;insert()在中间插。...原创 2018-12-12 20:49:07 · 777 阅读 · 0 评论