QPainter】的更多相关文章

因为开发环境不能联网,开发中用到有用的知识就记在word稳定中,不知不觉就记载了几十页,为避免笔记丢失,现在就一点点忘博客上搬,方便日后回顾! ------------------------------------------ 一,xml文档的生成和解析 1,Dom方式: xml首行说明类 QDomProcessingLnstruction类 元素对应QDomElement类 属性对应QDomAttr类 文本内容对应QDomText类 所有Dom节点,比如说明,元素,属性和文本,都使用QDom…
QPainter painter1(this);//新建类 painter1.setRenderHint(QPainter::Antialiasing,true);//设置反锯齿 painter1.setBrush(QBrush(/*Qt::green,*/ QPixmap(":/qmlicon/qmlicon/timeclock.png").scaled(size())));//添加填充颜色和图片 painter1.setPen(Qt::NoPen);//设置外框颜色为NoPen p…
设置 背景颜色和背景图片 首先设置autoFillBackground属性为真然后定义一个QPalette对象设置QPalette对象的背景属性(颜色或图片)最后设置QWidget对象的Palette 实例: # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui from PyQt4.QtGui import * from PyQt4.QtCore import * class Icon(QtGui.QWidget): def __…
详细描述: QPainter类提供了许多高度优化的函数去做大部分的GUI绘制工作.它可以画从简单的线到复杂的形状.通常情况下,QPainter的使用是在widget当中的painter事件使用.记得在执行完之后要及时销毁QPainter的对象. void SimpleExampleWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(Qt::blue); painter.setFont(QFont("…
设置笔和字体以后,就可以写字了: void MainWindow::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); // 设置画笔颜色 painter.setPen(QColor(, , )); // 设置字体:微软雅黑.点大小50.斜体 QFont font; font.setFamily("Microsoft YaHei"); font.setPointSize(); font.se…
方法1. setStylSheet{"QDialog{background-image:url()"}}  //使用styleSheet 这种方法的好处是继承它的dialog都会自动设置背景,例如更换皮肤就是一个不错的选择 方法2. QPalette pal; pal.setBrush(QPalette::Background,QBrush(QPixmap("")));            this->setPalette(pal); 方法3.在paintE…
多些大家对我的支持啊!有朋友也提出,前面的几节有关event的教程缺少例子.因为event比较难做例子,也就没有去写,只是把大概写了一下.今天带来的是新的部分,有关Qt的2D绘图.这部分不像前面的内容,还是比较好理解的啦!所以,例子也会增加出来.   有人问豆子拿Qt做什么,其实,豆子就是在做一个Qt的画图程序,努力朝着Photoshop和GIMP的方向发展.但这终究要经过很长的时间.很困难的路程的,所以也放在网上开源,有兴趣的朋友可以来试试的呀…   好了,闲话少说,来继续我们的学习吧!  …
程序中数据导出是经常有的需求,今天学习把文本导出到pdf文件.主要是用QPrinter,QPainter TextEditToPdf::TextEditToPdf(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags) { ui.setupUi(this); int ret = connect(ui.m_pExportBtn,SIGNAL(clicked()),this,SLOT(exportSlot())); } TextEdit…
头文件: #ifndef GLABEL_H #define GLABEL_H #include <QLabel> #include <QPainter> #include <QPaintEvent> #include <QMouseEvent> class GLabel : public QLabel { Q_OBJECT public: enum PEOPLE{She,Me}; Q_PROPERTY(QString str_context READ get…
#include "widget.h" #include "ui_widget.h" #include <QPainter> #include <QFont> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { x = ; ui->setupUi(this); connect(ui->move, &QPushButton::clic…
转自:http://blog.sina.com.cn/s/blog_67cf08270100ww0p.html 一.坐标系简介. Qt中每一个窗口都有一个坐标系,默认的,窗口左上角为坐标原点,然后水平向右依次增大,水平向左依次减小,垂直向下依次增大,垂直向上依次减小.原点即为(0,0)点,然后以像素为单位增减. 例如: void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setBrush(Qt::red…
1.Qt绘图基础 (1)绘图需画笔和画布: QPainter 相当于Qt中的一个画笔,绘制时需要一块画布, Qt中扮演画布角色的组件为QPaintDevice和他的各个子类,如: QWidget, QPixmap, QPixture... QPainter.QPaintDevice之间使用 QPaintEngine 进行通讯(也就是翻译 QPainter 的指令的意思) (2)怎么画 通常都是要在哪个 widget 上绘图,就需要在它的 paintEvent() 函数里绘图,即重写 paintE…
1.QPainter使用save()函数来保存QPainter的状态,并且用restore()函数来使他们回退. void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); //this为绘图设备,即表明在该部件上进行绘 QPen pen; // creates a default pen pen.setStyle(Qt::DashDotLine); pen.setWidth(); pen.setBrush(…
[1]实例代码 (1)代码目录结构(备注:QtCreator默认步骤新建工程) (2)工程pro文件 QT += core gui greaterThan(QT_MAJOR_VERSION, ): QT += widgets TARGET = painter TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui (3)头文件 #ifndef MAINWIN…
今天在绘制双坐标曲线的时候需要修改y轴文字提示 QPainter的drawText()函数提供了绘制文本的功能. 它有几种重载形式,我们使用了其中的一种,即制定文本的坐标然后绘制 正常我们的文字书写方向是水平方向,现在需要调整为竖直方向. 百度了下没找到自己想要的结果,不得不吐槽百度搜索准确度 后来看了看帮助,可以进行文字旋转再绘制, 尝试了下实现了功能,这里记录下 源码 void pie::paintEvent(QPaintEvent *e) { QPainter painter(this);…
效果图: void WgtText::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); painter.setBrush(QBrush(Qt::blue, Qt::CrossPattern)); painter.drawRect(10,10,300,300); return QWidget::paintEvent(event);…
参考资料: https://www.cnblogs.com/Jace-Lee/p/5946342.html 效果图: 代码: void WgtText::paintEvent(QPaintEvent *event) { QPainter painter(this); QPen pen; // creates a default pen pen.setStyle(Qt::DashDotLine); pen.setWidth(3); pen.setBrush(Qt::blue); pen.setCa…
参考资料:https://blog.csdn.net/what951006/article/details/52876513 效果图: 代码: void WgtText::paintEvent(QPaintEvent *event) { QPainter painter(this); QFont font; font.setFamily("Microsoft YaHei"); // 大小 font.setPointSize(20); // 斜体 font.setItalic(true)…
参考资料: https://blog.csdn.net/qq_35488967/article/details/70802973https://blog.csdn.net/wanghualin033/article/details/78633604https://blog.csdn.net/liang19890820/article/details/51393152https://blog.csdn.net/liang19890820/article/details/51154216https:…
这个例子我做了好几天: 1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化 2)网上的PyQt的例子根本运行不了 填了无数个坑,结合二者,终于能完成了一个关于绘图的东西.这个过程也掌握了很多新的知识点 [知识点] 1.关于多个点的使用 poitns = [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)] 请看: # 定义多个点 points = [QPoint(10, 80), QPoint(20, 1…
调用QPainter的接口来绘制一些基本的图形 头文件: #include <QMainWindow> #include <QPainter> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: ); ~MainWindow(); private: void paintEvent(QPaintEvent *event); private: Ui::Ma…
使用 QPainter 修改 QPaintDevice 的子类,如果 QPaintDevice 的子类也是 QWidget 的子类,比如自定义QWidget子类.QLabel等,需要把 QPainter 相关语句放入QWidget 子类的 void paintEvent(QPaintEvent *event); 事件函数中.QLabel 等官方 QWidget 子类就需要继承QLabel ,然后重写 void paintEvent(QPaintEvent *event); 函数,否则 Qt cr…
QStyledItemDelegate类为来自模型的数据项提供了显示和编辑工具. 当在Qt项视图(例如QTableView)中显示来自模型的数据时,各个项由委托(delegate)绘制.此外,当编辑一个项目时,它提供一个编辑器小部件,当编辑发生时,该小部件放在项目视图的顶部.QStyledItemDelegate是所有Qt项视图的默认委托,在创建时安装在它们上. QStyledItemDelegate类是模型/视图类之一,是Qt模型/视图框架的一部分.委托允许独立于模型和视图开发项目的显示和编辑…
在使用Qt  QPainter 的时候,有时会遇到“QPainter::end: Painter ended whith 2 saced states” 这时由于我们在使用的QPanter.translate();函数,而在绘制结束的时候没有使用 restore()函数 出现QPainter::end: Painter ended whith 2 saced states 敬告,只需要在在绘制的结束的时候加上 restore() 函数就好了了…
1. 绘制椭圆  饼状型 贝塞尔曲线 绘制图像重写方法 void paintEvent(QPaintEvent *event)即可. void Widget::paintEvent(QPaintEvent *event) { QPainter painter1(this); //新建画笔 painter1.setRenderHint(QPainter::Antialiasing, true); //设置 反走样 painter1.setPen(QPen(Qt::black, 8, Qt::Das…
简述 Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类. QPainter用来执行绘图操作,其提供的API在GUI或QImage.QOpenGLPaintDevice.QWidget和QPaintDevice显示图形(线.形状.渐变等).文本和图像. QPaintDevice不直接绘制物理显示画面,而利用逻辑界面的中间媒介.例如,绘制矩形图形时,为了将对象绘制到QWidget.Q…
利用QPainter绘制各种图形 Qt的二维图形引擎是基于QPainter类的.QPainter既可以绘制几何形状(点.线.矩形.椭圆.弧形.弦形.饼状图.多边形和贝塞尔曲线),也可以绘制像素映射.图像和文字.此外,QPainter还支持一些高级特性,例如反走样(针对文字和图形边缘).像素混合.渐变填充和矢量路径等.QPainter也支持线性变换,例如平移.旋转.错切和缩放. 本例子中利用QPainter类提供的各种draw函数,绘制各种类型的图形,包括对图形的形状.颜色.填充风格等的选择. 1…
声明:本文原创于yafeilinux的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处. 我看了这篇文章很好很容易理解.如果看了Qt助手之后更加的形象. 前面一节我们讲解了图片的显示,其中很多都用到了坐标的变化,这一节我们简单讲一下Qt的坐标系统,其实也还是主要讲上一节的那几个函数.这里我们先讲解一下Qt的坐标系,然后讲解那几个函数,它们分别是:translate()函数,进行平移变换:scale()函数,进行比例变换:rotate()函数,进行旋转变换:s…
1.窗口整体透明,但是窗体上的控件不透明.    通过设置窗体的背景色来实现,将背景色设置为全透. QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal);    试验效果:    窗体标题栏不透明:    窗体客户区上的控件不透明,QLabel控件只是字显示,控件背景色透明:    窗体客户区完全透明.      另外从网上看到的方法:…
比如用QLabel在主界面上画两条虚线: bool ContentWidget::eventFilter(QObject *obj, QEvent *event) { if(obj == line_label_1 || obj == line_label_2) { if(event->type() == QEvent::Paint) { int label_height_1 = line_label_1->height(); int label_width_1 = line_label_1-&…