一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintEvent ( QPaintEvent * ) [虚 保护] 3.void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽] 4.void QWi...
原创 2021-08-23 09:19:44
1149阅读
Qt5之前,GUI开发使用的是现在的QtWidgets,已经被大家所熟悉,ui描述界面布局组合C++细节实现,实现效果很好,界面开发的速度还算中肯。在不具备开发自定义UI又需跨平台(C++源码)的组织和个人面前,几乎是不二选择。但在移动开发面前不灵了,因为QtWidgets本质是使用平台绘图工具来绘绘制界面,而每个界面的绘制都需要各自有自己的绘制状态,这个消耗对于手机这类移动平台来说是不可忽视的
可以自定义一个类QtImageLabel继承于QLabel,重写paintEvent事件划线,写文字等。如果用 ui 设计,将 QLabel 控件提升为 QtImag
原创 11月前
90阅读
头文件:#ifndef CIRCLEWIDGET_H#define CIRCLEWIDGET_H #include <QWidget> class QTimer; class CircleWidget : public QWidget{
转载 2022-06-13 17:44:21
506阅读
窗口改变或调用update()/repaint()函数会触发这个事件 当update()函数被调用多次,或者窗口系统发送了多个重绘事件,那么Qt就会合并这些事件成为一个事件,而这个事件拥有最大的需要重绘的区域。update()函数不会立即进行重绘,要等到Qt返回主事件循环后才会进行,所以多次调用up
原创 2022-01-25 16:53:28
1151阅读
多些大家对我的支持啊!有朋友也提出,前面的几节有关event的教程缺少例子。因为event比较难做例子,也就没有去写,只是把大概写了一下。今天带来的是新的部分,有关Qt的2D绘图。这部分不像前面的内容,还是比较好理解的啦!所以,例子也会增加出来。 有人问豆子拿Qt做什么,其实,豆子就是在做一个Qt的 Read More
转载 2016-02-01 20:57:00
366阅读
2评论
Qt paintEvent和QTimer更新的问题     dateLabel = new QLabel(this);    QPixmap datePix(tr(":/images/res/time.png"));        QPainter painter;Qt::whit
转载 2023-07-04 15:51:46
193阅读
案例2:绘制按钮main.cpp#include#include “demoWidget.h”intmain(int args , int argv){QApplication app(args , argv);DemoWidget w;w.resize(400,400);w.setVisible(true);return app.exec();}main.proTEMPLATE=appSOURCES=main.cpp demoWidget.cppdemoPushButton.cppHEADERS=demoWidget.h demoPushButton.hCONFIG=release qtQT
转载 2013-09-22 19:48:00
160阅读
2评论
一.主要理解一下几个方法和属性:1.QWidget * QScrollView::viewport () const2.void QWidget::paintEvent ( QPaintEvent * ) [虚
转载 2022-06-14 02:23:05
1451阅读
  前面说了有关反走样的相关知识,下面来说一下渐变。渐变是绘图中很常见的一种功能,它是利用颜色插值使得两个或更多颜色之间能够平滑过渡,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子变成另一种颜色。它们常被用来创建二维图形的三维效果。渐变的算法比较复杂,写得不好的话效率会很低,好在很多绘图系统都内置了渐变的功能,Qt也不例外。渐变一般是用在填充里面的,所以,渐变的
原创 2016-10-26 10:34:06
3758阅读
QT中利用paintEvent设置背景图重写paintEvent(QPaintEvent *event)事件,利用QPainter这个类
转载 2022-06-13 17:17:52
192阅读
转载:https://www.cnblogs.com/hnrainll/archive/2011/05/26/2057758.html 一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintE ...
转载 2021-10-11 22:41:00
93阅读
2评论
在派生类中重载QDialog的void paintEvent(QPaintEvent *)事件,在这个函数中加入以下代码 QPainter painter(this); QLinearGradient grad(0, 0, width(), height()); QGradientStops gs; Read More
转载 2016-06-10 21:48:00
158阅读
2评论
Qt Quick Scene Graph 相关文档:https://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html参照示例 customgeometry:https://doc.qt.io/qt-5/qtquick-scenegraph-customgeometry-example.html本文完整代码链接:https://github.co
转载 8月前
70阅读
调用update函数或是repaint函数,触发paintEvent函数repaint函数可以通过参数,更新某一块区域repaint函数立即触发paintEvent函数update函数不会立即触发,由消息队列安排处理,多个update触发的事件会合并,为了提高效率
原创 2019-07-17 21:57:41
3082阅读
QColumnView类提供了一个列视图的模型/视图实现。头文件:#include <QColumnView>qmake:QT += widgets继承:QAbstractItemViewQColumnView在许多QListView中显示一个模型,树中的每个层次结构都有一个模型。 这有时被称为级联列表。QColumnView类是模型/视图类之一,是Qt的模型/视图框架的一部分。QCo
转载 9月前
50阅读
一、Qt事件循环(eventloop)1.事件循环一般用exec()函数开启。QApplicaion::exec()、QMessageBox::exec()都是事件循环。其中前者又被称为主事件循环。事件循环首先是一个无限“循环”,程序在exec()里面无限循环,能让跟在exec()后面的代码得不到运行机会,直至程序从exec()跳出。从exec()跳出时,事件循环即被终止。QEventLoop::
转载 2024-04-24 09:27:01
182阅读
时间日期是经常遇到的数据类型,Qt中的时间日期类如下:QTime:时间类型,只表示时间,如15:23:13;QDate:日期类型,只表示日期,如2017-4-5;QDateTime:日期时间类型,表示日期和时间,如2017-03-23 08:12:43;Qt中有专门用于日期、时间编辑和显示的界面组件:QTimeEdit:编辑和显示时间的组件;QDateEdit:编辑和显示日期的组件;QDateTi
转载 2024-08-15 00:27:34
71阅读
 刚做完的一个项目,在测试时出现了一个问题:由于多线程的存在,当进行语音识别时:如果用户点击程序界面上的button或者其他接受点击事件后会发出信号的widget时,程序会crash ! 后来尝试着从多线程上去解决,但是比较困难;后来只能从另外一条路来解决,那就是:当语音识别进行时:禁掉一切用户操作!      所谓的禁掉一切UI操作,在手机等手持
转载 10月前
281阅读
Qt函数1、resize()函数是用来设置Qt窗体的大小,不能设置Qt窗体的位置;2、move()函数是用来设置Qt窗体的位置,不能设置Qt窗体的大小。其大小依靠Qt窗体(或者resize()函数)来决定的,其参数只需要左上角的起始点就可以了;3、setGeometry()函数也是用来设置Qt窗体的位置,不过它与move()函数的不同点是其参数必须是两个点:左上角与右下角(或对应的长度与高度);Q
  • 1
  • 2
  • 3
  • 4
  • 5