为什么要做这次文字的介绍,因为在一般的教材中,还真没有文字的描述:
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 -->
分享到:
相关推荐
本文将深入探讨在Qt中使用OpenGL进行文字显示、透视投影、纹理贴图以及抗锯齿的技术。 首先,让我们来看看“QtOpenGL文字显示”这个主题。在OpenGL中,显示文本通常需要额外的库支持,如FreeType或GLUT,因为OpenGL...
Qt 旋转文字代码实现是利用 Qt 库中的 QPainter 类实现文字旋转的方法。该方法主要使用 QPainter 的 rotate 和 translate 函数来实现文字旋转。 要实现文字旋转,需要四个步骤: 1. 变换旋转中心:使用 translate ...
在Qt编程中,自定义控件是提升应用界面独特性和用户体验的重要手段。本示例"Qt自绘制进度条源码"提供了一种方法,通过继承`QProgressBar`并利用Qt的自绘机制来创建一个定制的圆弧进度条。下面我们将深入探讨这个主题...
在本项目“qt QPainter 绘制跑马灯”中,我们将利用QPainter来实现一种动态的、循环滚动的文字或图片效果,类似于常见的LED显示屏或信息滚动条。 跑马灯效果通常涉及到以下几个关键知识点: 1. **QPainter的使用**...
在本文中,我们将深入探讨如何使用Qt框架来绘制一个动态的罗盘,并实时显示方向信息。Qt是一个跨平台的应用程序开发框架,广泛用于GUI(图形用户界面)编程,支持多种操作系统,包括Windows、Linux和macOS等。 首先...
本教程重点讲解如何利用Qt进行2D绘图,特别是关于绘制文字的部分。Qt的绘图功能主要通过QPainter类来实现,这个类提供了丰富的绘画方法和选项。 首先,要进行2D绘图,你需要创建一个QPainter对象,并将其关联到一个...
"Qt_button文字和图片分开"这个主题就是关于如何在Qt中实现这一目标的。 首先,我们需要了解Qt中的`QPushButton`类,它是Qt Widgets模块中的基础按钮组件。默认情况下,`QPushButton`会将文字和图标一起显示,但...
在描述中提到的“QT QChart QPieSeries 空心饼图中显示文字”,是指在QPieSeries类型的饼图中,如何在空心区域中心添加表示数据比例的文字。 QPieSeries是QChart库中的一个类,它专门用于构建饼图。通过这个类,...
首先,我们需要了解在QT中,QPainter类提供了绘制图形的基本功能,包括文本绘制和阴影效果。为了给QLabel添加阴影,我们需要自定义一个继承自QLabel的类,并重写其paintEvent()方法,以便在该方法中利用QPainter进行...
本主题聚焦于使用QT进行树状图的绘制,特别是如何实现拖拽、编辑文字、修改背景颜色、字体样式以及动态交互功能。 在QT中,我们可以利用QGraphicsScene和QGraphicsView来创建自定义的图形界面。`diagramscene`这个...
1. **Qt图形系统**:Qt的图形系统基于QPainter,它提供了丰富的绘图功能,包括直线、曲线、椭圆、文字等基本元素的绘制。在创建虚拟仪表表盘时,我们需要用到QPainter来绘制指针、刻度、背景等元素,模拟真实仪表的...
在QT中,曲线绘制主要依赖`QPainter`类,它提供了基本的2D绘图功能,包括线条、曲线、文字、图像等。首先,你需要创建一个窗口或者对话框,然后在其上设置一个画布,这个画布可以通过`QGraphicsView`和`...
Qt的QOpenGLWidget可以较方便的解决这个问题,其可以在OpenGL绘制之后,使用QPainter继续绘制2D图形或文字标签。 - 在Qt OpenGL上绘制2D标签的核心思路:先确定想要绘制标签处的3D坐标,然后将其投影到2D屏幕上,...
在“Qt语音合 成 文字转语音”这个主题中,我们将深入探讨如何利用Qt结合微软的Speech SDK(Speech Synthesis API)来实现文本转语音(TTS)的功能,以及如何支持中英混合输出。 首先,我们需要了解Qt中的QSound或...
在`mytabwidget.cpp`和`mytabwidget.h`中,可能会定义这个新类,并重写`paintEvent`方法,以便在绘制标签时手动控制文字的方向。这样可以实现更精确的控制,但相比QSS可能更为复杂。 3. **源码结构**: - `widget....
在QT5中编译并使用freetype,可以极大地扩展QT应用的字体处理能力,特别是在需要自定义字体或特殊字符处理时。 在Linux和Windows上编译freetype涉及以下步骤: 1. **获取源码**:首先,你需要从freetype官方网站...
在Qt编程中,滚动文字和滑动按钮是常见的用户界面元素,它们可以增加交互性和视觉吸引力。Qt库提供了丰富的功能来实现这些效果,使得开发者能够轻松创建动态且引人入胜的用户界面。 一、Qt界面绑定类名的方法 在Qt...
在本教程中,我们将探讨如何在加载到QLabel的图片上绘制矩形框,并且能够实时显示所选矩形区域。这涉及到对事件处理、绘图以及图像处理的理解。 首先,我们需要在QLabel上加载图片。这可以通过调用QLabel的...
Qt视图中的文字实现彩虹渐变效果 Qt视图中的文字实现彩虹渐变效果是 Qt 应用程序中的一项常见需求。通过使用 Qt 的 Model/View 机制和 delegate,可以轻松地实现文字的彩虹渐变效果。下面是相关知识点的总结: 1....
【标题】中的“基于qt的截图工具”是指利用Qt这一跨平台的应用程序开发框架来创建一个屏幕截图应用程序。Qt是一个强大的C++库,提供了一系列的工具、类库和API,用于构建用户界面和桌面应用程序。它支持Windows、...