Qt绘制文本二 弧形路径 正弦函数路径

void WgtText::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QString m_string("abcdefghijklmnopqrstuvwxy");
    int font_size = 15;
    float x0 = font_size * m_string.count() * 0.5;
    int YSize = font_size * m_string.count() * 0.5;
    for(int i=0; i<m_string.count(); i++)
    {

        // 按圆弧函数绘制
        painter.save();
        float tAlpha = i*3.14/m_string.count();
        float tx = YSize*cos(tAlpha) + YSize;
        float ty = YSize*sin(tAlpha);
        painter.translate(tx, ty);    // 文字的位置
        painter.rotate(180*i/(float)(m_string.count())); // 将文字本身旋转
        painter.drawText(QPointF(-10.0, 10.0), QString("%1").arg(m_string[i]));
        painter.restore();

    }

}

--------------------------------------------------------------------------------------

void WgtText::paintEvent(QPaintEvent *event)
{

    QPainter painter(this);
    int font_size = 10;
    // 设置字符间距
    int text_space = 2;
    int wh = height();
    QFont font;
    font.setFamily("Microsoft YaHei");
    // 大小
    font.setPointSize(font_size);
    // 使用字体
    painter.setFont(font);

    static QString m_string("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");

    for(int i=0; i<m_string.count(); i++)
    {
        // 按正弦函数绘制
        float tx = (font_size + text_space) * i;
        float ty = sin(tx);
        //压缩y坐标
        ty = wh/2 + ty*(wh/2*0.2);
        painter.drawText(QPointF(tx, ty), QString("%1").arg(m_string[i]));
    }

    return QWidget::paintEvent(event);

}

原文地址:https://www.cnblogs.com/zhangxuan/p/10142944.html

时间: 2024-07-29 23:35:11

Qt绘制文本二 弧形路径 正弦函数路径的相关文章

Qt之图形(绘制文本)

简述 前面我们讲解了Qt图形的基本绘制,其中包括: 绘制文本.直线.直线.矩形.弧线.椭圆.多边形.图片,以及其它一些高级用法,比如:渐变.转换等. 本节我们来详细讲解文字的绘制.主要通过QPainter的darwText()函数来实现,里面包含多个重载函数,其中,可以通过QRect来指定绘制的区域,也可以通过QPoint来指定绘制的起始点. QFont类可以辅助设置文本的大小.粗细.字符间距等,然后使用setFont()来设置. QFontInfo类用来获取字体的信息,可以通过fontInfo

Skyline桌面二次开发之路径漫游(C#)

所谓路径漫游:即创建一个动态对象和一条由多点组成的线,然后让动态对象沿着线飞行 首先绘制一条线,实际上路径漫游是不需要绘制线的,我这里只是为了确认动态对象是否沿着线路在飞行,代码如下: //绘制路径 double[] cVerticesArray = null; cVerticesArray = new double[] { 116.35, 27.98, 0, 116.45, 28.98, 0, 116.45, 28.11, 0, 116.65, 28.45, 0, }; ILineString

QT开发(二十八)——QT常用类(二)

QT开发(二十八)--QT常用类(二) 一.QDir 1.QDir简介 QDir提供对目录结构及其内容的访问. QDir通过相对或绝对路径指向一个文件. 2.QDir成员函数 QDir主要成员函数如下: QDir::QDir ( const QDir & dir ) QDir::QDir ( const QString & path = QString() ) Dir::QDir ( const QString & path, const QString & nameFil

qt绘制设备

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt import * from PyQt4 import QtGui, QtCore from PyQt4.QtCore import * import sys #说明:绘图设备是继承 QPainterDevice 的类. QPaintDevice 就是能够进行绘制的类,也就是说, # Q

NLP(二十二)利用ALBERT实现文本二分类

??在文章NLP(二十)利用BERT实现文本二分类中,笔者介绍了如何使用BERT来实现文本二分类功能,以判别是否属于出访类事件为例子.但是呢,利用BERT在做模型预测的时候存在预测时间较长的问题.因此,我们考虑用新出来的预训练模型来加快模型预测速度. ??本文将介绍如何利用ALBERT来实现文本二分类. 关于ALBERT ??ALBERT的提出时间大约是在2019年10月,其第一作者为谷歌科学家蓝振忠博士.ALBERT的论文地址为:https://openreview.net/pdf?id=H1

QT开发(二十七)——QT常用类(一)

QT开发(二十七)--QT常用类(一) 一.QString 1.QString简介 QString提供了Unicode编码的字符串,使用隐式共享技术来节省内存和不必要的数据拷贝,不必考虑跨平台的兼容性. QString类成员函数中除了 ascii().latin1().utf8().local8Bit()函数,其他所有的函数都是可重入的. 2.QString成员函数 QString::QString ( const QChar * unicode, int size ) QString::QSt

嵌入式linux QT开发(二)——QT开发环境搭建

嵌入式linux QT开发(二)--QT开发环境搭建 一.Windows系统QT开发环境搭建 操作系统:Windows 7 QT Creator:qt-creator-win-opensource-2.4.1 QT SDK:qt-win-opensource-4.7.4-mingw 1.安装QT Creator 点击qt-creator-win-opensource-2.4.1源程序安装. 2.安装QT SDK 点击qt-win-opensource-4.7.4-mingw源程序安装. 选择mi

Android Canvas Paint绘制文本

字体有三种类型:1,内置基本字体 2,通过基本字体和样式,创建新的Typeface 3,引入外部的ttf文件. 示例代码如下: 1. package com.mike.activity; 2. 3. import android.R; 4. import android.app.Activity; 5. import android.graphics.Bitmap; 6. import android.graphics.Canvas; 7. import android.graphics.Col

QT开发(二十九)——QT常用类(三)

QT开发(二十九)--QT常用类(三) 一.QImage 1.QImage简介 QT中提供了四个处理图像数据的类:QImage.QPixmap.QBitmap.QPicture. QImage提供了允许直接访问像素数据的硬件无关的图像显示方案,能够用作绘图设备. QImage专门为I/O.直接像素访问操作而设计,并进行了优化.访问图片的像素或是修改图片像素,则需要使用QImage,或者借助于QPainter来操作像素. 由于QImage继承自QPaintDevice,QPainter可以直接在Q