当前位置: 首页 > 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.xdnf.cn/news/1355941.html

相关文章:

  • 一个简洁的 C++ 日志模块实现
  • 【数位DP】D. From 1 to Infinity
  • 金山办公的服务端开发工程师-25届春招笔试编程题
  • Python训练营打卡 DAY 45 Tensorboard使用介绍
  • 基于电磁频谱地图的辐射源定位算法复现
  • 基于TimeMixer现有脚本扩展的思路分析
  • 基础IO
  • CryptSIPVerifyIndirectData函数分析
  • 刷题日记0823
  • 环境 (shell) 变量
  • Nacos-12--扩展:@RefreshScope和@ConfigurationProperties实现热更新的原理
  • Kubernetes笔记整合-1
  • 一种通过模板输出Docx的方法
  • LeakyReLU和ReLU的区别
  • 探索 JUC:Java 并发编程的神奇世界
  • KVM虚拟化:提升企业效率的利器
  • 【嵌入式】【搜集】RTOS相关技术信息整理
  • 微信小程序界面常用操作
  • SpringBoot自动装配原理深度解析
  • 电蚊拍的原理及电压电容参数深度解析:从高频振荡到倍压整流的完整技术剖析
  • Trae Solo模式生成一个旅行足迹App
  • 最新短网址源码,防封。支持直连、跳转。 会员无广
  • Azure Kubernetes Service (AKS)
  • 视觉革命:云渲染如何让创意不再受限于硬件
  • qt ElaWidgetTools第一个实例
  • leetcode刷题记录03——top100题里的6道简单+1道中等题
  • H264编解码过程简述
  • 算法 ---哈希表
  • C 语言标准输入输出头文件stdio.h及其常见用法
  • 【KO】前端面试六