QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解

news2024/11/19 1:40:52

       本文详细的介绍了QSlider、QHorizontalSlider、QVerticalSlider控件的各种操作,例如:新建界面、设置刻度显示、设置范围值、设置值、获取值、设置步长、刻度间隔、改变方向、滑动信号、按下信号、滑动信号、释放滑块、样式表等操作。


本系列QT全面详解文章目前共有十七篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。

本文作者原创,转载请附上文章出处与本文链接。

QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解目录

1 新建界面

2 设置刻度显示

 3 设置范围值

 4 设置值

 5 获取值

6 设置步长

 7 刻度间隔

8 改变方向

9 滑动信号

 10 按下信号

11 滑动信号

12 释放滑块

13 .h

14 .cpp

15 样式表

16 其它文章 :


1 新建界面

2 设置刻度显示

刻度位置

QSlider::TickPosition,这个枚举指定刻度线相对于滑块和用户操作的位置。

常量描述
QSlider::NoTicks0不绘制任何刻度线
QSlider::TicksBothSides3在滑块的两侧绘制刻度线
QSlider::TicksAbove1在(水平)滑块上方绘制刻度线
QSlider::TicksBelow2在(水平)滑块下方绘制刻度线
QSlider::TicksLeftTicksAbove在(垂直)滑块左侧绘制刻度线
QSlider::TicksRightTicksBelow在(垂直)滑块右侧绘制刻度线
/* 可以使用 QSlider:: 来进行不同方向的刻度设置 */
ui->horizontalSlider->setTickPosition(QSlider::TicksBelow);
ui->verticalSlider->setTickPosition(QSlider::TicksRight);

 3 设置范围值

ui->horizontalSlider->setMaximum(100);
ui->horizontalSlider->setMinimum(0);

ui->verticalSlider->setMaximum(1000);
ui->verticalSlider->setMinimum(0);

 4 设置值

ui->horizontalSlider->setValue(50);
ui->verticalSlider->setValue(500);

 5 获取值

strText = QString::number(ui->horizontalSlider->value()) + " , " + QString::number(ui->verticalSlider->value());
QMessageBox::information(this,"数值",strText);

6 设置步长

ui->horizontalSlider->setTickInterval(10);
ui->verticalSlider->setTickInterval(100);

 7 刻度间隔

        刻度间隔通过setSingleStep函数来设置,但是我这边设置后不起作用,感觉这个函数可能和 6 设置步长 有冲突或者弃用有关

ui->horizontalSlider->setSingleStep(20);
ui->verticalSlider->setSingleStep(500);

8 改变方向

//Qt::Horizontal      // 水平方向
//Qt::Vertical      //垂直方向
//    ui->horizontalSlider->setOrientation(Qt::Vertical);
//    ui->verticalSlider->setOrientation(Qt::Horizontal);

改变前:

改变后:

9 滑动信号

private slots:

    void setHorValue(int value);

    void setVerValue(int value);

connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), SLOT(setHorValue(int)));

connect(ui->verticalSlider, SIGNAL(valueChanged(int)), SLOT(setHorValue(int)));


void MainWindow::setHorValue(int value)
{
    qDebug() << value;
}
void MainWindow::setVerValue(int value)
{
    qDebug() << value;
}

 10 按下信号

private slots:

    void getHorPressed();

    void getVerPressed();

connect(ui->horizontalSlider, SIGNAL(sliderPressed()), SLOT(getHorPressed()));

connect(ui->verticalSlider, SIGNAL(sliderPressed()), SLOT(getVerPressed()));

void MainWindow::getHorPressed()
{
    qDebug() << "horizontalSlider 按下了滑块!";
}

void MainWindow::getVerPressed()
{
    qDebug() << "verticalSlider 按下了滑块!";
}

11 滑动信号

private slots:

    void getHorMoved(int value);

    void getVerMoved(int value);

connect(ui->horizontalSlider, SIGNAL(sliderMoved(int)), SLOT(getHorMoved(int)));

connect(ui->verticalSlider, SIGNAL(sliderMoved(int)),  SLOT(getVerMoved(int)));

void MainWindow::getHorMoved(int value)
{
    qDebug() << "horizontalSlider 拖动了滑块! " << value;
}
void MainWindow::getVerMoved(int value)
{
    qDebug() << "verticalSlider 拖动了滑块! " << value;
}

12 释放滑块

private slots:

    void getHorReleased();

    void getVerReleased();

connect(ui->horizontalSlider, SIGNAL(sliderReleased()), this, SLOT(getHorReleased()));

connect(ui->verticalSlider, SIGNAL(sliderReleased()), this, SLOT(getVerReleased()));

void MainWindow::getHorReleased()
{
    qDebug() << "horizontalSlider 释放了滑块! ";
}
void MainWindow::getVerReleased()
{
    qDebug() << "verticalSlider 释放了滑块! ";
}

13 .h

/******************************************************************************
 * Copyright CSDN 双子座断点 Co., Ltd.
 * Copyright www.dreambeging.vip Co., Ltd.
 * All right reserved. See COPYRIGHT for detailed Information.
 *
 * @file       mainwindow.h
 * @project    QHorizontalSlider_Test
 * @version    V 1.0
 *
 * @author     断点<dream.2017@qq.com>
 * @date       2022/12/08
 * @history
 *****************************************************************************/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMessageBox>
#include <QSlider>
#include <QDebug>>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
#pragma execution_character_set("utf-8")
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    QString Title;
    QString Version;
    QString BlogText;
    QString strText;

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

    void setHorValue(int value);

    void setVerValue(int value);

    void getHorPressed();

    void getVerPressed();

    void getHorMoved(int value);

    void getVerMoved(int value);

    void getHorReleased();

    void getVerReleased();

private:
    Ui::MainWindow *ui;

    QSlider *pSlider;
};
#endif // MAINWINDOW_H

14 .cpp

/******************************************************************************
 * Copyright CSDN 双子座断点 Co., Ltd.
 * Copyright www.dreambeging.vip Co., Ltd.
 * All right reserved. See COPYRIGHT for detailed Information.
 *
 * @file       mainwindow.cpp
 * @project    QHorizontalSlider_Test
 * @version    V 1.0
 *
 * @author     断点<dream.2017@qq.com>
 * @date       2022/12/08
 * @history
 *****************************************************************************/

#include "mainwindow.h"
#include "ui_mainwindow.h"

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



    Title = "QT QSlider、QHorizontalSlider、QVerticalSlider CSDN 双子座断点 ";
    Version = "V 1.0 ";
    BlogText = "https://blog.csdn.net/qq_37529913?type=lately/";
    setWindowTitle(Title + Version + BlogText);


    ui->horizontalSlider->setMaximum(100);
    ui->horizontalSlider->setMinimum(0);

    ui->verticalSlider->setMaximum(1000);
    ui->verticalSlider->setMinimum(0);

    ui->horizontalSlider->setValue(50);
    ui->verticalSlider->setValue(500);



    ui->horizontalSlider->setTickPosition(QSlider::TicksBelow);
    ui->verticalSlider->setTickPosition(QSlider::TicksRight);


    ui->horizontalSlider->setTickInterval(10);
    ui->verticalSlider->setTickInterval(100);

//    ui->horizontalSlider->setSingleStep(20);
//    ui->verticalSlider->setSingleStep(500);




    //Qt::Horizontal      // 水平方向
    //Qt::Vertical      //垂直方向
    //ui->horizontalSlider->setOrientation(Qt::Vertical);
    //ui->verticalSlider->setOrientation(Qt::Horizontal);


    connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), SLOT(setHorValue(int)));
    connect(ui->verticalSlider, SIGNAL(valueChanged(int)), SLOT(setHorValue(int)));

    connect(ui->horizontalSlider, SIGNAL(sliderPressed()), SLOT(getHorPressed()));
    connect(ui->verticalSlider, SIGNAL(sliderPressed()), SLOT(getVerPressed()));

    connect(ui->horizontalSlider, SIGNAL(sliderMoved(int)), SLOT(getHorMoved(int)));
    connect(ui->verticalSlider, SIGNAL(sliderMoved(int)),  SLOT(getVerMoved(int)));

    connect(ui->horizontalSlider, SIGNAL(sliderReleased()), this, SLOT(getHorReleased()));
    connect(ui->verticalSlider, SIGNAL(sliderReleased()), this, SLOT(getVerReleased()));


}


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


void MainWindow::getHorReleased()
{
    qDebug() << "horizontalSlider 释放了滑块! ";
}
void MainWindow::getVerReleased()
{
    qDebug() << "verticalSlider 释放了滑块! ";
}

void MainWindow::getHorMoved(int value)
{
    qDebug() << "horizontalSlider 拖动了滑块! " << value;
}
void MainWindow::getVerMoved(int value)
{
    qDebug() << "verticalSlider 拖动了滑块! " << value;
}


void MainWindow::getHorPressed()
{
    qDebug() << "horizontalSlider 按下了滑块!";
}
void MainWindow::getVerPressed()
{
    qDebug() << "verticalSlider 按下了滑块!";
}


void MainWindow::setHorValue(int value)
{
    qDebug() << value;
}
void MainWindow::setVerValue(int value)
{
    qDebug() << value;
}


void MainWindow::on_pushButton_clicked()
{
    strText = QString::number(ui->horizontalSlider->value()) + " , " + QString::number(ui->verticalSlider->value());
    QMessageBox::information(this,"数值",strText);
}


void MainWindow::on_pushButton_2_clicked()
{
    QMessageBox::information(this,"数值",QString::number(ui->verticalSlider->value()));
}


15 样式表

QT 控件重绘_双子座断点的博客-CSDN博客_qt 重绘

QT 样式表_双子座断点的博客-CSDN博客

QT 样式表属性完整版_双子座断点的博客-CSDN博客

Qt 系统字体_双子座断点的博客-CSDN博客

16 其它文章 :

QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

QT QComboBox使用详解_双子座断点的博客-CSDN博客

QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio

QT QSpinBox 整数计数器控件 使用详解_双子座断点的博客-CSDN博客


QT QDoubleSpinBox 浮点计数器控件(使用详解)_双子座断点的博客-CSDN博客_qdoublespinbox信号槽

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

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

相关文章

职业生涯交叉点,7年测试工程师经历,继续做测试还是转开发?

我毕业后一直从事软件测试工作&#xff0c;今年28岁了。所做的工作都是功能测试&#xff0c;对于性能测试、自动化测试完全没有接触。 我是在深圳的一个小公司上班&#xff0c;每天朝九晚五的&#xff0c;工作不累。属于那种要来活了半天就可以搞定&#xff0c;剩下的时间都是…

三车道交通流元胞自动机研究附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

app提交上架最新流程 ios​

一、上架基本需求资料 1、苹果开发者账号&#xff08;公司已有可以不用申请&#xff0c;需要开通开发者功能&#xff0c;每年 99 美元&#xff09;​ 2、开发好的APP​ 二、证书 上架版本需要使用正式的证书​ 1、创建证书 ​​Apple Developer​​​ 2、上传证书 Sign In …

设计模式之工厂方法模式

factory method design pattern 工厂方法模式的概念、工厂方法模式的结构、工厂方法模式的优缺点、工厂方法模式的使用场景、工厂方法模式的实现示例、工厂方法模式的源码分析 1、工厂方法的概念 工厂方法模式&#xff0c;及简单工厂模式的升级版&#xff0c;其抽象了对象的创…

进阶 - Git分支管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zGglo72S-1670494545297)(https://lili40342.gitee.io/my-images/page/p_git.png)] 本篇文章&#xff0c;是基于我自用Linux系统中的自定义文件夹“test_rep”&#xff0c;当做示例演示 具体Git仓库的目…

用无代码,「低」人力成本也能做出「高」质量售后服务

目录 智能派单提升响应速度,移动端处理高效便捷 主动提升客户满意度,统一管理客户信息 标准化领、退料流程,精细化控制物料成本 沉淀数据资产,实时掌握最新状况 双十一大促热潮刚过,部分商家就开始因为“重销售,轻售后”的经营策略,而面临消费者的维权投诉,导致庆功…

企业微信对外收款功能如何开通?

之前很多企业在微信上运营客户&#xff0c;与客户达成交易后在微信上完成收款&#xff0c;但是会存在员工谎报账款、走私单的情况&#xff0c;因此企业改用企业微信对公收款。 前言 之前很多企业都在微信上运营客户&#xff0c;从开始追踪客户到成交客户这一整个过程都在微信上…

Day41——Dp专题

文章目录四、完全背包01背包的核心代码完全背包的核心代码12、零钱兑换 II13、组合总和 Ⅳ四、完全背包 完全背包&#xff1a;每一个物品可以选无限次 完全背包和01背包问题唯一不同的地方就是&#xff0c;每种物品有无限件 01背包的核心代码 for(int i 0; i < weight.…

全网最全的linux上docker安装oracle的详细文档,遇到了n个问题,查了几十篇文章,最终汇总版,再有解决不了的,私聊我,我帮你解决

文章目录全网最全的linux上docker安装oracle的详细文档&#xff0c;遇到了n个问题&#xff0c;查了几十篇文章&#xff0c;最终汇总版&#xff0c;再有解决不了的,私聊我&#xff0c;我帮你解决1. 拉取阿里镜像oracle2. 创建初始化数据3. 创建启动容器 数据持久化4. 进入oracle…

JVM学习初整理

JVM 内存结构(运行时数据区)&#xff1a;堆(Heap)&#xff0c;方法区(Method area)&#xff0c;栈(本地方法栈(Native Method Stacks)&#xff0c;虚拟机方法栈(Java Virtual Machine Stacks))&#xff0c;程序计数器(The pc Register) 堆&#xff1a;java虚拟机所管理的内存…

空调集中控制器的分类

在日常生活中&#xff0c;人们接触较多的是空调遥控器&#xff0c;空调智能控制器与空调遥控器有较大区别。空调遥控器是一对一管理&#xff0c;空调控制器可以集中管理。一般应用于机房管理、学校教室、图书馆管理、办公室、大型商场、工厂宿舍等地方。 红外空调控制器 红外空…

ACM6753(18V/3A三相无感BLCD无刷直流电机驱动IC)

概述 ACM6753是一款18V/3A三相无感BLCD(无刷直流)电机驱动IC、180˚正弦&#xff0c;集成驱动算法预驱MOS &#xff0c;内置电流检测。 产品指标和特性 • 供电电压范围&#xff1a;5V-24V • 上侧MOS下侧MOS&#xff1a;250mΩ • 3A 连续旋转电流&#xff0c;4A峰值保护电流 …

图书商城在线销售系统(ssm,layui,mysql)+全套视频教程

今天&#xff0c;我们发布一套【图书商城在线销售系统(ssm,layui,mysql)】,系统使用技术包含JAVA,SSM,LAYUI,MYSQL&#xff0c;这套系统后台框架使用SSM,数据库使用MySql, 这套系统包含完整的源代码和数据库脚本&#xff0c;根据我们提供的开发工具和运行视频教程&#xff0c;拿…

Java进阶——IO流(II)

文章目录三、节点流和处理流3.1、处理流BufferedReader和BufferedWriter3.2、处理流BufferedInputStream和BufferedOutputStream3.3、对象流ObjectInputStream和ObjectOutputStream3.4、标准输入输出流3.5、转换流InputStreamReader和OutputStreamWriter3.6、打印流**PrintStre…

【多目标进化优化】MOPSO 原理与代码实现

&#x1f388;&#x1f49e;&#x1f49e; &#x1f607; 热烈欢迎您的到来 &#x1f607; &#x1f498;&#x1f498;&#x1f388;——青年有志 &#x1f3c6;初衷&#xff1a; 通俗的语言 dapei 核心的内容 &#x1f389; 博主相信&#xff1a; 有足够的积累&#xff0c…

一个简单的WEB网页制作作业——黑色的山河旅行社网站(5个页面)HTML+CSS+JavaScript

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

2022年各国程序员编程水平排行榜出炉,排名第一的国家没听说过

哪个地方的程序员编程水平最高&#xff1f;相信很多人对这个问题感兴趣&#xff0c;今天就来聊一聊这个话题。 Pentalog 是一个全球数字服务平台&#xff0c;主要帮助企业寻找世界上一流的IT人才&#xff0c;每年都会发布一份全球IT行业报告&#xff0c;今天文章的数据也是来自…

单片机控制马达驱动IC的应用

8位机最常见的应用单片机驱动马达IC工作&#xff0c;马达可支持无级调速&#xff08;PWM&#xff09;&#xff0c;正转&#xff0c;反转&#xff0c;刹车。该应用简单高效适应于各种应用&#xff0c;节约成本的不二选择。 今天就跟大家分享曾经做过的马达驱动IC的应用。 主电…

类的加载器

文章目录1. 概述1.1 大厂面试题1.2 类加载的分类1.3 类加载器的必要性1.4 命名空间1.5 类加载机制的基本特征2. 类的加载器分类2.1 引导类加载器2.2 扩展类加载器2.3 系统类加载器2.4 用户自定义类加载器3. 测试不同的类的加载器4. ClassLoader源码解析4.1 ClassLoader的主要方…

测量电源纹波-正确测量方法

测量纹波需要注意的点&#xff1a; 1、用弹簧探针&#xff1b; 2、测量位置在输出电容两端&#xff1b; 3、示波器选择‘20M’&#xff1b; 4、示波器选择‘交流耦合’&#xff1b; 5、示波器探头‘X1’&#xff0c;示波器设置‘X1’&#xff1b;(10:1的探头&#xff0c;实际上…