当前位置: 首页 > news >正文

【Qt开发】常用控件(六)

目录

1 -> font

1.1 -> 相关 API

1.2 -> 代码示例

1.2.1 -> 在 Qt Designer 中设置字体属性

1.2.2 -> 在代码中设置字体属性

2 -> toolTip

2.1 -> 相关 API

2.2 -> 代码示例

3 -> focusPolicy

3.1 -> 相关 API

3.2 -> 代码示例


1 -> font

1.1 -> 相关 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是否带有删除线

1.2 -> 代码示例

1.2.1 -> 在 Qt Designer 中设置字体属性

1. 在界面上创建一个 label

2. 在右侧的属性编辑区,设置该 label 的 font 相关属性

在这里调整上述属性,可以实时的看到文字的变化。

3. 执行程序,观察效果

1.2.2 -> 在代码中设置字体属性

1. 在代码中创建 label,objectName 使用默认的 label

#include "widget.h"
#include "ui_widget.h"
#include <QLabel>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QLabel* label = new QLabel(this);label->setText("这是一段文本!!!");
}Widget::~Widget()
{delete ui;
}

2. 修改 widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QLabel>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QLabel* label = new QLabel(this);label->setText("这是一段文本!!!");// 创建字体对象QFont font;// 字体家族font.setFamily("楷体");// 字体大小font.setPixelSize(30);// 是否加粗font.setBold(true);// 是否倾斜font.setItalic(true);// 是否带下划线font.setUnderline(true);// 是否带删除线font.setStrikeOut(true);// 把font对象设置到label中label->setFont(font);
}Widget::~Widget()
{delete ui;
}

3. 运行程序,观察效果

2 -> toolTip

2.1 -> 相关 API

API说明
setToolTip

设置 toolTip

鼠标悬停在该 widget 上时会有提示说明

setToolTipDuring

设置 toolTip 提示的时间。单位 ms

时间到后 toolTip 自动消失

toolTip 只是给用户看的。在代码中一般不需要获取到 toolTip。

2.2 -> 代码示例

设置按钮的 toolTip

1. 在界面上拖放两个按钮。objectName 设置为 pushButton_yes 和 pushButton_no

2. 编写 widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 设置两个按钮的ToolTipui->pushButton_yes->setToolTip("有惊喜");ui->pushButton_yes->setToolTipDuration(5000);ui->pushButton_no->setToolTip("没有惊喜");ui->pushButton_no->setToolTipDuration(2000);
}Widget::~Widget()
{delete ui;
}

3. 运行程序,观察效果

可以看到鼠标停到按钮上之后,就能弹出提示,时间到后自行消失。

3 -> focusPolicy

设置控件获取到焦点的策略。比如某个控件能否用鼠标选中或者能否通过 tab 键选中。

所谓 “焦点”,指的就是能选中这个元素。对于 输入框,单选框,复选框等控件非常有用。

3.1 -> 相关 API

API说明
focusPolicy()获取该 widget 的 focusPolicy,返回 Qt::FocusPolicy
setFocusPolicy(Qt::FocusPolicy policy)设置 widget 的 focusPolicy

Qt::FocusPolicy 是一个枚举类型。取值如下

  • Qt::NoFocus:控件不会接收键盘焦点
  • Qt::TabFocus:控件可以通过 Tab 键接收焦点
  • Qt::ClickFocus:控件在鼠标点击时接收焦点
  • Qt::StrongFocus:控件可以通过 Tab 键和鼠标点击接收焦点(默认值)
  • Qt::WheelFocus:类似于 Qt::StrongFocus,同时控件也通过鼠标滚轮获取到焦点(新增的选项)

3.2 -> 代码示例

理解不同的 focusPolicy

1. 在界面上创建四个单行输入框(Line Edit)

2. 修改四个输入框的 focusPolicy 属性为 Qt::StrongFocus(默认值,一般不用额外修改)

运行程序,可以看到,使用鼠标单击/Tab,就可以移动光标所在的输入框。从而接下来的输入就是针对这个获取焦点的输入框展开的了。

3. 修改第二个输入框的 focusPolicy 为 Qt:: NoFocus,则第二个输入框不会被 Tab/鼠标左键选中。

此时这个输入框也就无法输入内容了。

4. 修改第三个输入框 focusPolicy 为 Qt::TabFocus,则只能通过 Tab 选中,无法通过鼠标选中。

5. 修改第四个输入框 focusPolicy 为 Qt::ClickFocus,则只能通过 Tab 选中,无法通过鼠标选中。


感谢各位大佬支持!!!

互三啦!!!

http://www.dtcms.com/a/347953.html

相关文章:

  • Golang云端编程深度指南:架构本质与高阶实践
  • Flink Slot 不足导致任务Pending修复方案
  • 互联网大厂Java面试实录:从Spring到微服务的全面考察
  • 【软件安全】ARM64、x86、32 位与 64 位架构的区别、定义、应用背景
  • 个人搭建小网站教程(云服务器Ubuntu版本)
  • 【数据结构】二叉树的顺序存储、堆的实现及其应用:堆排序与Top-K问题
  • 以国产IoTDB为代表的主流时序数据库架构与性能深度选型评测
  • kanass V1.1.4版本发布,支持Mysql数据库、ubuntu安装与Mantis数据导入
  • Thonny+MicroPython搭建ESP32芯片开发环境
  • 代码性能测试——benchmark库
  • Elasticsearch Ruby 客户端故障排查实战指南
  • AI与SEO关键词协同优化
  • DBeaver连接SQL Server集成认证问题解决方案
  • xxl-job 启动后导致pod内存使用率持续增加
  • 从 Unity UGUI 到 Unreal UMG 的交互与高效实践:UI 事件、坐标系适配与性能优化
  • MATLAB 与 Simulink 联合仿真:控制系统建模与动态性能优化
  • C#_gRPC
  • RabbitMQ--消费端异常处理与 Spring Retry
  • 阿里云拉取dockers镜像
  • 在JavaScript中,比较两个数组是否有相同元素(交集)的常用方法
  • 今日科技热点 | AI加速创新,5G与量子计算引领未来
  • wpf之DockPanel
  • 3D打印机管理后台与RabbitMQ集成的业务场景
  • RabbitMQ面试精讲 Day 29:版本升级与平滑迁移
  • 【图像处理基石】基于 Python 的图像行人删除技术:实现街景无干扰化处理
  • 性能比拼: .NET (C#) vs. Fiber (Go)
  • Kaggle项目:一次 Uber 出行数据分析的完整思路
  • 高空作业安全监控难题突破!陌讯自适应识别算法实现安全带穿戴检测准确率↑93%
  • 深度学习——详细教学:神经元、神经网络、感知机、激活函数、损失函数、优化算法(梯度下降)
  • 大数据管理与应用系列丛书《数据挖掘》读书笔记之集成学习(1)