QT中QSlider,QScrollBar,QProgressBar,QDial,QLCDNumber

进度条--QProgressBar,进度对话框--QProgressDialog 指示 reset()函数是否隐藏对话框,若 autoClose()为 true,则 reset()函数会隐藏对话框,进度对话框是否在value()等于maximum时立即调用reset(),若为true则立即调用reset()把取消按钮的文本设置为 cancelButtonText,若设置为 QString()(注意:不是空字符串),进度条的方向,必须是 Qt::Horizontal (水平,默认) 或 Qt::Vertical (垂直) 阅读详情



图 1 实例设计界面


在这个实例中,用到如下一些组件:

  • QSlider:滑动条,通过滑动来设置数值,可用于数值输入。实例中使用 4 个滑动条输入红、绿、蓝三色和 Alpha 值,然后合成颜色,作为一个 QTextEdit 组件的底色。
  • QScrollBar:卷滚条,与 QSlider 功能类似,还可以用于卷滚区域。
  • QProgressBar:进度条,一般用于显示任务进度,可用于数值的百分比显示。实例程序中滑动一个Slider,获取其值并更新ScrollBar和ProgressBar。
  • QDial:表盘式数值输入组件,通过转动表针获得输入值。
  • QLCDNumber:模仿 LCD 数字的显示组件,可以显示整数或浮点数,显示整数时可以不同进制显示。实例程序中转动表盘,获得的值显示在 LCD 组件中。单击“LCD显示进制”的 RadioButton 时,设置 LCD 的显示进制。

各组件的主要功能和属性

QSlider

QSlider、QScrollBar 和 Qdial 3 个组件都从 QAbstractSlider 继承而来,有一些共有的属性。QSlider 是滑动的标尺型组件,滑动标尺上的一个滑块可以改变值。

基类 QAbstractSlider 的主要属性包括以下几种:

  1. minimum、maximum:设置输入范围的最小值和最大值,例如,用红、绿、蓝配色时,每种基色的大小范围是 0〜255,所以设置 minimum 为 0,maximum 为 255。
  2. singleStep:单步长,拖动标尺上的滑块,或按下左/右光标键时的最小变化数值。
  3. pageStep:在 Slider 上输入焦点,按 PgUp 或 PgDn 键时变化的数值。
  4. value:组件的当前值,拖动滑块时自动改变此值,并限定在 minimum 和 maximum 定义的范围之内。
  5. sliderPosition:滑块的位置,若 tracking 属性设置为 true,sliderPosition 就等于 value。
  6. tracking:sliderPosition 是否等同于 value,如果 tracking=tme,改变 value 时也同时改变 sliderPosition。
  7. orientation:Slider 的方向,可以设置为水平或垂直。方向参数是 Qt 的枚举类型 enum Qt::Orientation,取值包括以下两种:
    • Qt::Horizontal 水平方向
    • Qt::Vertical 垂直方向
  8. invertedAppearance:显示方式是否反向,invertedAppearance=false 时,水平的 Slider 由左向右数值增大,否则反过来。
  9. invertedControls:反向按键控制,若 invertedControls=tme,则按下 PgUp 或 PgDn 按键时调整数值的反向相反。


属于 QSlider 的专有属性有两个,如下:

  1. tickPosition:标尺刻度的显示位置,使用枚举类型 QSliderzTickPosition,取值包括以下 6 种:
    • QSlider::NoTicks:不显示刻度
    • QSlider::TicksBothSides:标尺两侧都显示刻度
    • QSlider::TicksAbove:标尺上方显示刻度
    • QSlider::TicksBelow:标尺下方显示刻度
    • QSlider::TicksLeft:标尺左侧显示刻度
    • QSlider::TicksRight:标尺右侧显示刻度
  2. tickInterval:标尺刻度的间隔值,若设置为 0,会在 singleStep 和 pageStep 之间自动选择。

QScrollBar

QScrollBar 从 QAbstractSlider 继承而来的,具有 QAbstractSlider 的基本属性,没有专有属性。

QDial

QDial 是仪表盘式的组件,通过旋转表盘获得输入值。QDial 的特有的属性包括以下两种:

  1. notches Visible:表盘的小刻度是否可见。
  2. notchTarget:表盘刻度间的间隔像素值。

QProgressBar

QProgressBar 的父类是 QWidget,一般用于进度显示,常用属性如下:

  1. minimum、maximum:最小值和最大值。
  2. value:当前值,可以设定或读取当前值。
  3. textVisible:是否显示文字,文字一般是百分比表示的进度。
  4. orientation:可以设置为水平或垂直方向。
  5. format:显示文字的格式,“%p%”显示百分比,“%v”显示当前值,“%m”显示总步数。缺省为“%p%”。

QLCDNumber

QLCDNumber 是模拟 LCD 显示数字的组件,可以显示整数或小数,但就如实际的 LCD 一样,要设定显示数字的个数。显示整数时,还可以选择以不同进制来显示,如十进制、二进制、十六进制。其主要属性如下:

  1. digitCount:显示的数的位数,如果是小数,小数点也算一个数位。
  2. smallDecimalPoint:是否有小数点,如果有小数点,就可以显示小数。
  3. mode:数的显示进制,通过调用函数 setDecMode()、setBinMode()、setOctMode()、setHexMode() 可以设置为常用的十进制、二进制、八进制、十六进制格式。
  4. value:返回显示值,浮点数。若设置为显示整数,会自动四舍五入后得到整数,设置为 intValue 的值。如果 smallDecimalPoint=tme,设置 value 时可以显示小数,但是数的位数不能超过 digitCounto
  5. intValue:返回显示的整数值。


例如,若 smallDecimalPoint=tme,digitCount=3,设置 value=2.36,则界面上 LCDNumber 组件会显示为 2.4;若设置 value=1456.25,则界面上 LCDNumber 组件只会显示 145。所以,用 QLCDNumber 作为显示组件时,应注意这些属性的配合。

实例功能的代码实现

红绿蓝配色

使用 Red、Green、Blue 和 Alpha 4 个滑动条配色,然后设置为旁边的 TextEdit 的底色。界面操作是在拖动滑块时就进入响应程序,为 QSlider 的 valueChanged() 信号设计槽函数。在 UI 设计器里,选中滑动条 SliderRed,然后在“Go to slot”对话框里选择 valueChanged(int) 信号,生成槽函数原型声明和函数体,编写代码如下:

 
  1. void Widget::on_SliderRed_valueChanged(int value)
  2. {
  3. //拖动Red、Green、Blue颜色滑动条时设置textEdit的底色
  4. Q_UNUSED(value);
  5. QColor color;
  6. int R=ui->SliderRed->value();
  7. int G=ui->SliderGreen->value();
  8. int B=ui->SliderBlue->value();
  9. int alpha=ui->SliderAlpha->value();
  10. color.setRgb (R, G, B, alpha) ; //使用 QColor 的 setRgb ()函数获得颜色
  11. QPalette pal=ui->textEdit->palette();
  12. pal.setColor (QPalette::Base, color) ; //设置底色
  13. ui->textEdit->setPalette (pal);
  14. }

在这段代码里,使用 QSlider::value() 函数获得滑动条的当前值,然后调用 QColor::setRgb() 函数生成颜色。QColor 的静态函数 setRgb() 定义为:

void QColor::setRgb(int r, int g, int b, int a = 255)

其中 r、g、b 是红、绿、蓝颜色值,均在 0 在 255 之间,a 是颜色的 alpha 值,缺省是 255,取值范围也是 0〜255。

以上代码是 SliderRed 的 valueChanged(int) 信号的槽函数代码,其他 3 个滑动条的响应代码也与此完全相同。那么在设计程序时,无需为其他 3 个 Slider 的 valueChanged(int) 信号再生成槽函数,只需将它们的 valueChanged(int) 信号与槽函数 on_SliderRed_valueChanged() 关联即可。在窗口类 Widget 的构造函数里实现此功能,代码如下:

 
  1. Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
  2. {
  3. ui->setupUi(this);
  4. this->setLayout(ui->horizontalLayout);
  5. QObject::connect(ui->SliderGreen,SIGNAL(valueChanged(int)), this,SLOT(on_SliderRed_valueChanged(int)));
  6. QObject::connect(ui->SliderBlue,SIGNAL(valueChanged(int)), this,SLOT(on_SliderRed_valueChanged(int)));
  7. QObject::connect(ui->SliderAlpha,SIGNAL(valueChanged(int)), this,SLOT(on_SliderRed_valueChanged(int)));
  8. }

这样设置信号与槽的关联后,这 4 个滑动条中任何一个的值改变时,发射 valueChangecKint) 信号,都调用同一个槽函数 on_SliderRed_valueChanged(int),避免了重复编写代码。

LCD值显示

滑动表盘组件的指针时,设定 LCD 的显示值等于表盘的值。单击进制设置的 RadioButton 可以设置 LCD 的显示进制和显示数位数。为 Dial 组件的 valueChanged(int) 信号和每个 RadioButton 的 dicked() 信号生成槽函数,编写代码实现相应的功能,代码如下:

 
  1. void Widget::on_dial_valueChanged(int value)
  2. {
  3. //设置LCD的显示值等手Dial的值
  4. ui->LCDDisplay->display(value);
  5. }
  6. void Widget::on_radioBtnDec_clicked()
  7. {
  8. //设置LCD显示+进制数
  9. ui->LCDDisplay->setDigitCount(3) ; //设置位数 ui->LCDDisplay->setDecMode();
  10. }
  11. void Widget::on_radioBtnBin_clicked()
  12. {
  13. //设置LCD显示三进制数
  14. ui->LCDDisplay->setDigitCount(8);
  15. ui->LCDDisplay->setBinMode();
  16. }
  17. void Widget::on_radioBtnOct_clicked()
  18. {
  19. //设置LCD显示人进制数
  20. ui->LCDDisplay->setDigitCount(4);
  21. ui->LCDDisplay->setOctMode();
  22. }
  23. void Widget::on_radioBtnHex_clicked()
  24. {
  25. //设置LCD显示+六进制数
  26. ui->LCDDisplay->setDigitCount(3);
  27. ui->LCDDisplay->setHexMode();
  28. }
QT QProgressBar控件 使用详解 QProgressBar(进度条)是Qt框架中的一个小部件,用于可视化显示任务或操作的进度。它通常用于以下情况:1. 显示任务的进度:进度条可以显示任务的完成情况,让用户了解任务的进展。例如,当文件下载或复制过程中,可以使用进度条显示文件的下载或复制进度。2. 反馈长时间运行的操作:当执行需要一些时间的操作时,进度条可以提供反馈,让用户知道操作正在进行中,并显示操作的进度。这可以增加用户体验,避免用户认为应用程序已经崩溃或无响应。3. 控制流程:进度条还可以用作控制流程的一种方式。 阅读详情

相关推荐

QTQt常用数值输入和显示控件

Qt常用数值输入和显示控件介绍

u011671745的博客 3049

QT实现在滑动条的滑块上显示数值

滑块可以随意拉动,并在滑块上实时显示当前数值,可以随意拖动,简单高效无bug。 同时可以实现点击滑条便使得滑块可以实时跳到点击的位置

Qt控件实战详解:深入掌握输入输出与数据展示

数据输入控件QSliderQScrollBarQDial数据输出控件QLCDNumber数据处理类QColorQPaletteQTime核心机制:信号槽通信、事件处理关键设计原则输入控件应提供实时反馈输出控件需清晰展示数据变化相关控件应建立逻辑连接保持界面响应灵敏这些控件组合能创建各种实用功能:从简单的调色板到复杂的数据监控仪表盘。掌握它们的使用,将极大提升你的Qt开发能力!

2301_80167761的博客 524

QScrollBar | QSlider | QDial | QProgressBar | QLCDNumber

QScrollBar | QSlider | QDial | QProgressBar | QLCDNumber】 【1】UI设计界面 【QScrollBar | QSlider 函数学习】 【2】setMinimum | setMaximum 【3】setSingleStep 【4】setPageStep 【5】setValue 【6】setSliderPosition 【7】setTracking 【8】setOrientation 【9】setInvertedAppearance 【10】setIn

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1336

QProgressBar详解

QProgressBar提供了一个水平或垂直的进度条,可以使用setMinimum()和setMaximum指定最小和最大步数。当前的步数是用setValue()设置的。进度条可以用reset()重绕到开头。也可以直接设置显示的值,如下图所示,显示小数。这里简单设置一下样式表。效果如下,仅供参考。setFormat(),有如下几种方式。只需设置最大值、最小值为0就行了。调用样式表方法进行设置。

宁静致远的博客 3849

Qt 学习笔记】Qt常用控件 | 显示类控件 | Progress Bar的使用及说明

QProgressBar是一个Qt框架中的控件,用于显示进度条。它可以用于表示任务的完成进度或操作的进度。QProgressBar可以在水平或垂直方向上显示进度条。它可以通过设置最小值和最大值来指定进度条的范围。QProgressBar提供了一些方法和属性,可以方便地设置进度条的值、范围、样式等。可以通过在Qt Designer中使用QProgressBar,或者在代码中创建QProgressBar对象,然后使用各种方法和属性来设置进度条的样式和行为。

小黄鸭的博客 4276

QT第五讲-控件QLineEdit、QSpinBox、QSliderQScrollBarQDialQProgressBarQLCDNumber

QLineEdit是 Qt 提供的单行文本输入控件,适合输入短文本,如名称、数值、密码、搜索关键字等。文字输入/编辑输入验证(Validator)密码模式自动完成(Completer)占位提示文字信号响应(如文本改变、回车等)QSliderQt 中的滑块控件,继承自,用于在一个范围内选择值。滑块可以是水平或垂直,常用于调节音量、亮度、进度条等。// 水平滑块// 设置范围 0~100// 设置当前值类名QDial继承QDial继承自,是一个带旋转手柄的旋钮控件。作用。

jiyanghao19的博客 204

Qt控件--QSlider--QSvrollBar--QDial--QProgressBar--QLCDNumber

Qt控件--QSlider--QSvrollBar--QDial--QProgressBar--QLCDNumberQAbstractSlider:抽象的滑块类QAbstractSlider属性:minimum、maximum:singleStep:pageStep:value:sliderPosition:tracking:orientation:invertedAppearance:invertedControls:sliderDown : boolQSlider:滑动条QSlider专有属性:tick

simple_core的博客 1093

04-3_Qt 5.9 C++开发指南_QSlider+QScrollBar+QProgressBar+QDial+QLCDNumber数值输入和显示组件的使用

QLCDNumber: 模仿 LCD 数字的显示组件,可以显示整数或浮点数,显示整数时可以不同进制显示。实例程序中转动表盘,获得的值显示在 LCD 组件中。QProgressBar: 进度条,一般用于显示任务进度,可用于数值的百分比显示QSlider: 滑动条,通过滑动来设置数值,可用于数值输入。实例中使用4 个滑动条输入红、绿、蓝三色和 Alpha 值,然后合成颜色,作为一个 QTextEdit 组件的底色。实例 samp4_4演示如何使用这些组件,图4-4 是实例samp4_4 的设计界面。

分享学习成长历程,Winter is coming! 475

QT常用界面设计组件——其它数值输入和显示组件

实例功能 QSlider:滑动条,通过滑动设置数值,可用于数值输入。(此实例使用四个滑动条输入红、绿、蓝三色的Alpha值,然后合成颜色,作为一个QTextEdit组件的底色) QScrollBar:卷滚条,与QSlider功能类似,还可以用于卷滚区域 QProgressBar:进度条,一般用于显示任务进度,可用于数值的百分比显示(实例程序中滑动一个Slider,获取其值并更新ScrollB...

Wanggj的博客 3956

初识QT(二十九)——Qt数值输入组件和显示组件用法详解

图 1 实例设计界面 在这个实例中,用到如下一些组件: QSlider:滑动条,通过滑动来设置数值,可用于数值输入。实例中使用 4 个滑动条输入红、绿、蓝三色和 Alpha 值,然后合成颜色,作为一个 QTextEdit 组件的底色。 QScrollBar:卷滚条,与 QSlider 功能类似,还可以用于卷滚区域。 QProgressBar:进度条,一般用于显示任务进度,可用于数值的百...

图像学习之旅 3782

Qt数值输入组件和显示组件用法详解

前面总结了 LineEdit 和 SpinBox 组件,其实还有其他一些用于数值输入和显示的组件。实例 samp4_4 演示如何使用这些组件,图 1 是实例 samp4_4 的设计界面: 图 1 实例设计界面 在这个实例中,用到如下一些组件: QSlider:滑动条,通过滑动来设置数值,可用于数值输入。实例中使用 4 个滑动条输入红、绿、蓝三色和 Alpha 值,然后合成颜色,作为一个 ...

weixin_38293453的博客 2575

第八章节 Qt数值的输入与输出

setBinMode() 设置2进制 或setMode(QLCDNumber::Bin);2). 通过设置 displayIntegerBase 属性,显示数据时,不需要进行进制之间的转换。如果 digitCount 显示完整数部分后,还可以显示小数部分,那么剩余的小数部分就四舍五入。1). 不需要通过 QString 进行字符串和数值的转换,读取的就是数值类型。把需要代码控制的组件(静态标签除外的所有组件),修改合适的名称。3). 注意数据的范围,超出范围,输入和输出会导致错误。

m0_65635427的博客 314

【嵌入式——QT】数值输入和显示组件

嵌入式-QT-数值输入和显示组件

weixin_39723539的博客 855

9 Qslider QScrollBar QprogressBar QDial QLCDNumber

QLCDNumber:模仿LCD数字的显示组件,可以显示整数或浮点数,显示整数可以使用不同进制数值。QProgressBar:进度条,一般用于显示任务进度,可用于数值的百分比显示QScrollBar:卷滚条,与QSlider:功能类似,还可以用于卷滚区域。QSlider:滑动条,通过滑动设置数值,可用于数值输入。QDia:表盘式数值输入组件,通过转动表针获取输入值。

wade1010的专栏 159

QT专题:基础部件(按钮类,布局类,输出类,输入类,容器类)

讲解了QT的一些基础部件的基础应用

m0_70983574的博客 847

PyQt5学习笔记

1初体验 from PyQt5.Qt import * import sys app = QApplication(sys.argv) window = QWidget() window.setWindowTitle("社会我顺哥,人狠话不多") window.resize(500, 500) window.move(400, 200) label = QLabel(window) label.setText("Hello Sz") label.move(200, 200) window.show(

秋风清,秋月明 615

Qt Widget Gallery

Qt Widget Gallery Qt Widget GalleryQt® Widget GalleryThis is a gallery of the most common Qt® widgets. The code used to generate thes...

283
上一篇: QT中QSpinBox与QDoubleSpinBox
下一篇: QT中获取时间
枸杞养生
博客等级 码龄11年 14粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值