【Qt】输入类控件QSlider

news2024/9/20 14:35:09

目录

 输入类控件QSlider

例子:调整窗口大小

例子:通过自定义快捷键调整滑动条位置


输入类控件QSlider

使用QSlider表示一个滑动条

QDail与QSlider都继承于QAbstractSlider,所以其用法基本相似。

核心属性

属性说明

value

持有的数值

minimum

最⼩值

maximum

最⼤值

singleStep

按下⽅向键的时候改变的步⻓

pageStep

按下 pageUp / pageDown 的时候改变的步⻓

sliderPosition

滑动条显⽰的 初始位置

tracking

外观是否会跟踪数值变化.

默认值为 true. ⼀般不需要修改

orientation

滑动条的⽅向是⽔平还是垂直

invertedAppearance

是否要翻转滑动条的⽅向

tickPosition

刻度的位置.

tickInterval

刻度的密集程度.

核心信号

信号说明

valueChanged(int)

数值改变时触发

rangeChanged(int, int)

范围变化时触发

例子:调整窗口大小

在窗口上设置俩个滑动条,一个水平,一个垂直。

滑动俩个滑动条就可以调整窗口的大小。

(1)设置俩个滑动条,一个是垂直,一个是水平

(2)初始化俩个滑动条的数值

(3)编写滑动条的 valueChanged slot 函数

(4)代码实现

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //将垂直滑动条翻转的方向修改成从下往上修改
    ui->verticalSlider->setInvertedAppearance(true);

    //设置水平最大值
    ui->horizontalSlider->setMaximum(2000);
    //设置水平最小值
    ui->horizontalSlider->setMinimum(300);
    //设置水平初始值
    ui->horizontalSlider->setValue(800);
    //设置使用方向键水平移动的距离
    ui->horizontalSlider->setSingleStep(50);

    //设置垂直最大值
    ui->verticalSlider->setMaximum(2000);
    //设置垂直最小值
    ui->verticalSlider->setMinimum(300);
    //设置垂直初始值
    ui->verticalSlider->setValue(800);
    //设置使用方向键垂直移动的距离
    ui->verticalSlider->setSingleStep(50);

    //按照初始值设置窗口初始大小
    QRect rect = this->geometry();
    this->setGeometry(rect.x(), rect.y(), 800, 800);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_verticalSlider_valueChanged(int value)
{
    QRect rect = this->geometry();
    this->setGeometry(rect.x(), rect.y(), rect.width(), value);
}

void Widget::on_horizontalSlider_valueChanged(int value)
{
    QRect rect = this->geometry();
    this->setGeometry(rect.x(), rect.y(), value, rect.height());
}

例子:通过自定义快捷键调整滑动条位置

滑动条本身是可以通过方向键和pageUp pageDown进行操作,但是也可以自定义。

(1)设置一个滑动条,一个label

(2)创建滑动条的valueChanged 的 slot 函数

(3)增加俩个快捷键

  • 使用 QShortCut 类设置快捷键
  • 快捷键触发时, 会发出 QShortcut::activated 信号, 我们连接到⾃⼰写的 slot 函数

(4)编写自定义槽函数

(5)运行程序

(6)代码实现

#include "widget.h"
#include "ui_widget.h"

#include <QShortcut>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //设置快捷键 "-"
    QShortcut* shortcut1 = new QShortcut(this);
    shortcut1->setKey(QKeySequence("-"));
    connect(shortcut1, &QShortcut::activated, this, &Widget::subValue);

    //设置快捷键 "="
    QShortcut* shortcut2 = new QShortcut(this);
    shortcut2->setKey(QKeySequence("="));
    connect(shortcut2, &QShortcut::activated, this, &Widget::addValue);

}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_horizontalSlider_valueChanged(int value)
{
    //通过改变滑动条改变label
    ui->label->setText(QString("当前值为:") + QString::number(value) );
}

void Widget::subValue()
{
    //获取当前滑动条的值
    int value = ui->horizontalSlider->value();
    //使用快捷键 "-" 将滑动条像左移动
    if(value <= ui->horizontalSlider->minimum())
        return;
    ui->horizontalSlider->setValue(value - 1);
}

void Widget::addValue()
{
    //获取当前滑动条的值
    int value = ui->horizontalSlider->value();
    //使用快捷键 "+" 将滑动条像右移动
    if(value >= ui->horizontalSlider->maximum())
        return;
    ui->horizontalSlider->setValue(value + 1);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2072610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【hot100篇-python刷题记录】【反转链表】

R6-链表篇 思路&#xff1a;想到使用2个指针来做 pre在head前,now就是head 初始&#xff1a;nowhead,predummy 每次需要进行的操作&#xff1a; tmpnow.next now.next-->pre prenow nowtmp class Solution:def reverseList(self, head: Optional[ListNode]) -> …

280Hz显示器哪家强

280Hz显示器哪家强&#xff1f;今天就给大家带来6大品牌和型号的280Hz显示器一起对比对比&#xff01; 1.280Hz显示器 - HKC G27H3显示器 HKC G27H3是一款高性价比的电竞显示器&#xff0c;以下是它的一些特点&#xff1a; - **高刷新率与快速响应**&#xff1a; - 拥有280H…

【Arduino】试验带识别模块的吃鸡助手

在前面的试验中&#xff0c;我们试验了声音触发点击&#xff0c;方面多指操作的辅助功能&#xff0c; 【Arduino】自制声控点击器&#xff08;吼叫吃鸡助手&#xff09;-CSDN博客 如果声控模块换成图像识别模块&#xff0c;就是一个自动识别并shot的功能了&#xff0c; 通过…

使用GDIView工具排查GDI对象泄漏案例的若干细节总结

目录 1、查看任务管理器&#xff0c;发现程序中有明显的GDI对象泄漏 2、使用GDIView工具查看发生泄漏的是哪一种GDI对象 3、尝试找到复现问题的方法&#xff0c;缩小排查范围&#xff0c;逐步地找到GDI对象的泄漏点 4、本案例中的相关细节点的思考与总结&#xff08;有价值…

httpClient与openfeign

目录 介绍 maven坐标 发送请求步骤 发送get请求 ​发送post请求 介绍 是一个客户端编程的工具包&#xff0c;也就是在java程序中&#xff0c;可以构造http请求并且发送请求 maven坐标 httpclient <dependency> <groupId>org.apache.httpcomponents</g…

【Kotlin设计模式】建造者模式在Android中的应用

前言 建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;一步一步地构建一个复杂对象的不同部分&#xff0c;而不是直接创建该对象的实例。建造者模式的核心思想是将对象的构建过程与其表示分离&#xff0c;使得同样的构建过程可以创建不同的…

如何使用ssm实现基于ssm的疫情物质管理系统

TOC ssm170基于ssm的疫情物质管理系统jsp 第一章 绪论 1.1 研究背景 时代总是在进步的&#xff0c;自从进入了信息时代&#xff0c;面对大量的不同种类的数据&#xff0c;仅仅依靠有限的人力去处理&#xff0c;显然是不行的&#xff0c;毕竟人工处理大量的数据会耗费较长时…

git提交项目,报403无权限

这个在公司内网git上提交项目时&#xff0c;使用的是刚分配到的账号和密码。创建完组和项目后一切准备完毕了&#xff0c;但是在提交时缺出了乌龙&#xff0c;报403&#xff0c;上面一堆英文&#xff0c;大致的意思是说我没有上传本项目的权限&#xff0c;报错信息如下图所示&a…

5.1二叉树——基本概念梳理

本篇博客梳理二叉树相关的基本概念 一、树的概念与结构 1&#xff0e;树是递归定义的 树根N棵子树&#xff0c;每棵子树也可按照相同方式拆分 注意&#xff1a;子树之间不能有交集&#xff0c;否则变成图&#xff08;是另一种数据结构&#xff09; 2&#xff0e;树的相关概…

Linux进程信号——信号的概念与产生

文章目录 信号及其产生与发送什么是Linux信号信号的产生终端按键系统调用软件条件硬件条件 核心转储存储临时信号 信号及其产生与发送 我们从生活中理解信号&#xff0c;例如各种指示灯&#xff0c;红绿灯之类的&#xff0c;我们能认识红绿灯是因为每一种不同的情况在我们大脑…

Apache Doris 跨集群数据同步 CCR 全面介绍

CCR 概述 CCR&#xff08;Cross Cluster Replication&#xff09;也就是跨集群数据复制&#xff0c;能够在库/表级别将源集群的数据变更同步到目标集群&#xff0c;可用于提升在线服务的数据可用性、隔离在离线负载、建设两地三中心等。 CCR 通常被用于容灾备份、读写分离、集…

末代皇帝Intel核显黑苹果,NUC10的性能到底有多强

末代皇帝Intel核显黑苹果&#xff0c;NUC10的性能到底有多强 一、可以核显的Intel iGPU有哪些 核显是一个伟大的产物&#xff0c;它可以在我们没有多余的钱去买多余的显卡的时候排上用场&#xff0c;特别是在mini小主机的市场上&#xff0c;核显就显得尤为重要的&#xff0c;…

图形化的Agent工具

1 图形化 Agent 工具 1.1 核心组件 机器人 Bot&#xff1a;一个 AI 应用&#xff0c;或称为 Agent知识库&#xff1a;上传个人数据&#xff0c;机器人可根据其内容进行回复工作流&#xff1a;将大问题拆解成多个小问题&#xff0c;通过路径实现&#xff0c;路径上的每个节点完…

tomcat实战演练

一.tomcat介绍 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c; Tomcat 具有处理 HTML 页面的功能&#xff0c;它还是一个 Servlet 和 JSP容器。Tomc…

Python优化算法13——飞蛾扑火优化算法(MFO)

科研里面优化算法都用的多&#xff0c;尤其是各种动物园里面的智能仿生优化算法&#xff0c;但是目前都是MATLAB的代码多&#xff0c;python几乎没有什么包&#xff0c;这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考&#xff1a;Python优化算…

三种插入排序详解和代码实现(直接插入排序、折半插入排序和希尔排序)

目录 基本思想直接插入排序排序方法代码实现复杂度分析 折半插入排序排序方法代码实现复杂度分析 希尔排序排序方法代码实现复杂度分析最佳情况平均情况最坏情况增量序列的影响 基本思想 插入排序的基本思想是&#xff1a;每一趟将一个待排序的元素按照其关键字的大小插入到已经…

Hadoop 分布式集群搭建

HDFS分布式集群搭建 一、部署规划1.1 进程规划1.2 软件规划1.3 用户规划1.4 目录规划 二、 搭建HDFS 分布式集群2.1 HDFS 集群配置2.1.1 下载安装 Hadoop2.1.2 修改 hadoop-env.sh 配置文件2.1.3 修改 core-site.xml 配置文件2.1.4 修改 hdfs-site.xml 配置文件2.1.5 修改 slav…

力扣刷题(1)

两数之和 两数之和-力扣 思路&#xff1a; 动态开辟一个数组&#xff0c;用来存放下标&#xff1b;两个for循环嵌套来判断&#xff0c;数组中的两个数相加是否与target相等若相等&#xff0c;则将 * returnSize赋值为2&#xff0c;表示数组中两个数&#xff0c;并将arr数组…

数学建模之数据分析【九】:数据清理总结

文章目录 一、什么是数据清理二、为什么数据清理很重要三、执行数据清洁的步骤四、如何执行数据清理五、数据清理的Python库实现5.1 数据检查与探索5.2 使用df.info()检查数据信息5.3 检查分类和数字列5.4 检查分类列中唯一值的总数5.5 执行数据清理的步骤5.5.1 删除所有上述不…

真的爽到了!Coze的黑神话 “循环“ 闪亮登场,啥都能循环,让你一次通关!

心心念念了很久&#xff0c;Coze工作流终于支持循环操作啦&#xff0c;泪奔~~ 看&#xff0c;就在工作流节点的“选择器”和“意图识别”当中偷偷摸摸地多了一个“循环” 这玩意可比批处理强太多了&#xff0c;批处理只能在当前节点循环&#xff0c;做一些简单的循环任务还不错…