`
bbsunchen
  • 浏览: 230683 次
  • 性别: Icon_minigender_1
  • 来自: 天朝帝都
社区版块
存档分类
最新评论

QT中文字的绘制

qt 
阅读更多

为什么要做这次文字的介绍,因为在一般的教材中,还真没有文字的描述:

 

1.绘制最简单的文字。

我们更改重绘函数如下:

void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawText(100,100,”yafeilinux”);

}

我们在(100,100)的位置显示了一行文字,效果如下。

2.为了更好的控制字体的位置。我们使用另一个构造函数。在帮助里查看drawText,如下。

这里我们看到了构造函数的原型和例子。其中的flags参数可以控制字体在矩形中的位置。我们更改函数内容如下。

void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QRectF ff(100,100,300,200);

//设置一个矩形
painter.drawRect(ff);
//为了更直观地看到字体的位置,我们绘制出这个矩形
painter.setPen(QColor(Qt::red));
//设置画笔颜色为红色
painter.drawText(ff,Qt::AlignHCenter,”yafeilinux”);
//我们这里先让字体水平居中
}

效果如下。

可以看到字符串是在最上面水平居中的。如果想让其在矩形正中间,我们可以使用Qt::AlignCenter。

这里我们也可以使用两个枚举变量进行按位与操作,例如可以使用Qt::AlignBottom|Qt::AlignHCenter实现让文字显示在矩形下面的正中间。效果如下。

对于较长的字符串,我们也可以利用“\n”进行换行,例如”yafei\nlinux”。效果如下。

3.如果要使文字更美观,我们就需要使用QFont类来改变字体。先在帮助中查看一下这个类。

可以看到它有好几个枚举变量来设置字体。下面的例子我们对主要的几个选项进行演示。

更改函数如下。

void Dialog::paintEvent(QPaintEvent *)
{
QFont font(“Arial”,20,QFont::Bold,true);
//设置字体的类型,大小,加粗,斜体
font.setUnderline(true);
//设置下划线
font.setOverline(true);
//设置上划线
font.setCapitalization(QFont::SmallCaps);
//设置大小写
font.setLetterSpacing(QFont::AbsoluteSpacing,5);
//设置间距
QPainter painter(this);
painter.setFont(font);
//添加字体
QRectF ff(100,100,300,200);
painter.drawRect(ff);
painter.setPen(QColor(Qt::red));
painter.drawText(ff,Qt::AlignCenter,”yafeilinux”);
}

效果如下。

这里的所有字体我们可以在设计器中进行查看。如下。

<!-- end .entry -->

分享到:
评论

相关推荐

    QtOpenGL文字显示

    本文将深入探讨在Qt中使用OpenGL进行文字显示、透视投影、纹理贴图以及抗锯齿的技术。 首先,让我们来看看“QtOpenGL文字显示”这个主题。在OpenGL中,显示文本通常需要额外的库支持,如FreeType或GLUT,因为OpenGL...

    Qt 旋转文字代码实现

    Qt 旋转文字代码实现是利用 Qt 库中的 QPainter 类实现文字旋转的方法。该方法主要使用 QPainter 的 rotate 和 translate 函数来实现文字旋转。 要实现文字旋转,需要四个步骤: 1. 变换旋转中心:使用 translate ...

    Qt自绘制进度条源码

    在Qt编程中,自定义控件是提升应用界面独特性和用户体验的重要手段。本示例"Qt自绘制进度条源码"提供了一种方法,通过继承`QProgressBar`并利用Qt的自绘机制来创建一个定制的圆弧进度条。下面我们将深入探讨这个主题...

    qt QPainter 绘制跑马灯

    在本项目“qt QPainter 绘制跑马灯”中,我们将利用QPainter来实现一种动态的、循环滚动的文字或图片效果,类似于常见的LED显示屏或信息滚动条。 跑马灯效果通常涉及到以下几个关键知识点: 1. **QPainter的使用**...

    Qt绘制动态罗盘,实时显示

    在本文中,我们将深入探讨如何使用Qt框架来绘制一个动态的罗盘,并实时显示方向信息。Qt是一个跨平台的应用程序开发框架,广泛用于GUI(图形用户界面)编程,支持多种操作系统,包括Windows、Linux和macOS等。 首先...

    【Qt】2D绘图之绘制文字.rar

    本教程重点讲解如何利用Qt进行2D绘图,特别是关于绘制文字的部分。Qt的绘图功能主要通过QPainter类来实现,这个类提供了丰富的绘画方法和选项。 首先,要进行2D绘图,你需要创建一个QPainter对象,并将其关联到一个...

    Qt_button文字和图片分开

    "Qt_button文字和图片分开"这个主题就是关于如何在Qt中实现这一目标的。 首先,我们需要了解Qt中的`QPushButton`类,它是Qt Widgets模块中的基础按钮组件。默认情况下,`QPushButton`会将文字和图标一起显示,但...

    QT QChart QPieSeries 空心饼图中显示文字

    在描述中提到的“QT QChart QPieSeries 空心饼图中显示文字”,是指在QPieSeries类型的饼图中,如何在空心区域中心添加表示数据比例的文字。 QPieSeries是QChart库中的一个类,它专门用于构建饼图。通过这个类,...

    QT QPainter 绘制翻转的时间

    其中,QPainter是QT库中的一个核心组件,它提供了丰富的2D图形绘制功能,允许开发者进行复杂的图形操作,如线条、曲线、文字、图像的绘制等。在本案例中,"QT QPainter 绘制翻转的时间"指的是利用QPainter来实现时间...

    QT QLabel字体阴影实现源码

    首先,我们需要了解在QT中,QPainter类提供了绘制图形的基本功能,包括文本绘制和阴影效果。为了给QLabel添加阴影,我们需要自定义一个继承自QLabel的类,并重写其paintEvent()方法,以便在该方法中利用QPainter进行...

    QT绘制树状图,支持拖拽,编辑文件

    本主题聚焦于使用QT进行树状图的绘制,特别是如何实现拖拽、编辑文字、修改背景颜色、字体样式以及动态交互功能。 在QT中,我们可以利用QGraphicsScene和QGraphicsView来创建自定义的图形界面。`diagramscene`这个...

    qt虚拟仪表表盘的绘制

    1. **Qt图形系统**:Qt的图形系统基于QPainter,它提供了丰富的绘图功能,包括直线、曲线、椭圆、文字等基本元素的绘制。在创建虚拟仪表表盘时,我们需要用到QPainter来绘制指针、刻度、背景等元素,模拟真实仪表的...

    QT 曲线绘制

    在QT中,曲线绘制主要依赖`QPainter`类,它提供了基本的2D绘图功能,包括线条、曲线、文字、图像等。首先,你需要创建一个窗口或者对话框,然后在其上设置一个画布,这个画布可以通过`QGraphicsView`和`...

    Qt 语音合成 文字转语音

    在“Qt语音合 成 文字转语音”这个主题中,我们将深入探讨如何利用Qt结合微软的Speech SDK(Speech Synthesis API)来实现文本转语音(TTS)的功能,以及如何支持中英混合输出。 首先,我们需要了解Qt中的QSound或...

    基于QT的点阵文本显示

    在"基于QT的点阵文本显示"这个主题中,我们将深入探讨如何利用QT库来实现一种独特的文字显示方式,即点阵文本显示,它与传统的矢量字体不同,具有复古和像素化的视觉效果。 点阵文本显示通常用于模拟老式显示器或者...

    Qt OpenGL - 三维坐标系 (带刻度标签)

    Qt的QOpenGLWidget可以较方便的解决这个问题,其可以在OpenGL绘制之后,使用QPainter继续绘制2D图形或文字标签。 - 在Qt OpenGL上绘制2D标签的核心思路:先确定想要绘制标签处的3D坐标,然后将其投影到2D屏幕上,...

    QTQTabWidget文字垂直显示Demo源码

    在`mytabwidget.cpp`和`mytabwidget.h`中,可能会定义这个新类,并重写`paintEvent`方法,以便在绘制标签时手动控制文字的方向。这样可以实现更精确的控制,但相比QSS可能更为复杂。 3. **源码结构**: - `widget....

    QT5编译freetype生成静态以及动态库源码,Linux及Windows都可编译

    在QT5中编译并使用freetype,可以极大地扩展QT应用的字体处理能力,特别是在需要自定义字体或特殊字符处理时。 在Linux和Windows上编译freetype涉及以下步骤: 1. **获取源码**:首先,你需要从freetype官方网站...

    【最新】源码qt实现滚动文字,实现滑动按钮

    在Qt编程中,滚动文字和滑动按钮是常见的用户界面元素,它们可以增加交互性和视觉吸引力。Qt库提供了丰富的功能来实现这些效果,使得开发者能够轻松创建动态且引人入胜的用户界面。 一、Qt界面绑定类名的方法 在Qt...

    Qt中在QLabel上载入图片后在上面画矩形框,并将矩形框选的区域显示

    在本教程中,我们将探讨如何在加载到QLabel的图片上绘制矩形框,并且能够实时显示所选矩形区域。这涉及到对事件处理、绘图以及图像处理的理解。 首先,我们需要在QLabel上加载图片。这可以通过调用QLabel的...

Global site tag (gtag.js) - Google Analytics