🐌博主主页:🐌倔强的大蜗牛🐌
📚专栏分类:QT
❤️感谢大家点赞👍收藏⭐评论✍️
文章目录
一、windowOpacity
windowOpacity 通常用于设置窗口(Window)的透明度。
API
API | 说明 |
---|---|
windowOpacity() | 获取到控件的不透明数值. 返回 float, 取值为 0.0 -> 1.0 其中 0.0 表示全透明, 1.0 表示完全不透明. |
setWindowOpacity(float n) | 设置控件的不透明数值. |
代码示例: 调整窗口透明度
- 在界面上拖放两个按钮, 分别用来增加不透明度和减少不透明度.
objectName 分别为 pushButton_add 和 pushButton_sub.
- 编写 wdiget.cpp, 编写两个按钮的 slot 函数
- 点击 pushButton_sub 会减少不透明度, 也就是窗口越来越透明.
- 点击 pushButton_add 会增加不透明度, 窗口会逐渐恢复.
#include "widget.h"
#include "ui_widget.h"
#include<qDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_add_clicked()
{
float opacity =this->windowOpacity();
if(opacity>=1.0){
return;
}
qDebug()<<opacity;
opacity+=0.1;
this->setWindowOpacity(opacity);
}
void Widget::on_pushButton_sub_clicked()
{
float opacity =this->windowOpacity();
if(opacity<=0.0){
return;
}
qDebug()<<opacity;
opacity-=0.1;
this->setWindowOpacity(opacity);
}
- 执行程序, 可以看到, 点击了几下 - 之后, 就可以透过窗口看到后面的猫猫头了. 点击 + 又会逐渐恢复.
同时控制台中也可以看到 opacity 数值的变化
注意, C++ 中 float 类型遵守 IEEE 754 标准, 因此在进行运算的时候会有一定的精度误差. 因此 1 - 0.1 的数值并非是 0.9 .
二、cursor
在 GUI 编程中,cursor 通常指的是屏幕上显示的光标,它随着鼠标或触摸板的操作而移动。例如,当用户在桌面上移动鼠标时,光标会随之移动,以指示当前鼠标指针的位置。程序员可以通过编程控制光标的形状、颜色和行为。
API
API | 说明 |
---|---|
cursor() | 获取到当前 widget 的 cursor 属性, 返回 QCursor 对象. 当鼠标悬停在该 widget 上时, 就会显示出对应的形状. |
setCursor(const QCursor& cursor) | 设置该 widget 光标的形状. 仅在鼠标停留在该 widget 上时生效. |
QGuiApplication::setOverrideCursor(const QCursor& cursor) | 设置全局光标的形状. 对整个程序中的所有 widget 都会生效. 覆盖上面的 setCursor 设置的内容. |
代码示例:在 Qt Designer 中设置按钮的光标
- 在界面中创建一个按钮.
- 直接在右侧属性编辑区修改 cursor 属性为 “等待”
- 运行程序, 鼠标悬停到按钮上, 即可看到光标的变化
代码示例: 通过代码设置按钮的光标
- 编写 widget.cpp
其中 Qt::WaitCursor 就是自带的沙漏形状的光标.
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QCursor cursor(Qt::WaitCursor);
ui->pushButton->setCursor(cursor);
}
Widget::~Widget()
{
delete ui;
}
系统内置的光标形状如下:
Ctrl + 左键 点击 Qt::WaitCursor 跳转到源码即可看到.
2) 运行程序, 观察效果
代码示例:自定义鼠标光标
Qt 自带的光标形状有限. 我们也可以自己找个图片, 做成鼠标的光标.
- 创建 qrc 资源文件, 添加前缀 / , 并加入 dawoniu.png
- 编写 widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include<QCursor>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//访问到图片文件
QPixmap pixmap(":/dawoniu.png");
//将图片进行缩放
pixmap =pixmap.scaled(10,10);
//构造光标对象
QCursor cursor(pixmap,10,10);
//把光标设置进去
this->setCursor(cursor);
}
Widget::~Widget()
{
delete ui;
}
- 运行程序, 观察效果
三、font
API
API | 说明 |
---|---|
font() | 获取当前 widget 的字体信息. 返回 QFont 对象. |
setFont(const QFont& font) | 设置当前 widget 的字体信息. |
关于 QFont
属性 | 说明 |
---|---|
family | 字体家族. ⽐如 “楷体”, “宋体”, “微软雅⿊” 等. |
pointSize | 字体⼤⼩ |
weight | 字体粗细. 以数值⽅式表⽰粗细程度取值范围为 [0, 99], 数值越⼤, 越粗. |
bold | 是否加粗. 设置为 true, 相当于 weight 为 75. 设置为 false 相当于weight 为 50. |
italic | 是否倾斜 |
underline | 是否带有下划线 |
strikeOut | 是否带有删除线 |
代码示例: 在 Qt Designer 中设置字体属性
- 在界面上创建一个 label
- 在右侧的属性编辑区, 设置该 label 的 font 相关属性
- 执行程序, 观察效果
代码示例: 在代码中设置字体属性
- 在界面中创建 label, objectName 使用默认的 label 即可.
- 修改 widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include<QLabel>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QFont font;
// 设置字体家族
font.setFamily("仿宋");
// 设置字体⼤⼩
font.setPointSize(20);
// 设置字体加粗
font.setBold(true);
// 设置字体倾斜
font.setItalic(true);
// 设置字体下划线
font.setUnderline(true);
// 设置字体删除线
font.setStrikeOut(true);
// 设置字体对象到 label 上
ui->label->setFont(font);
}
Widget::~Widget()
{
delete ui;
}
- 运行程序, 观察效果
❤️结语:
本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!