Qt Widgets——抽象滑块及其继承类

三个可视类的默认外观分别如下(win7):它们的滑块都处于最小值0处。

理解QAbstractSlider时

可将它想成就是QScrollBar(该小部件的外观比较多地拥有QAbstractSlider属性):

属性列表如下:

不进行人为设置时的默认值如下:

公有函数主要是对以上属性的赋值或取值,列表如下:(以横向滚动条(图中右上角那个)说明)

QAbstractSlider(QWidget * parent = 0)
~QAbstractSlider()  

//基本使用,需要设置以下几项
void    setMinimum(int)//滑块处于最左端时它代表的值
void    setMaximum(int)//滑块处于最右端时它代表的值
void    setSingleStep(int)//单击左或右小箭头时,滑块变化的长度
void    setPageStep(int)
void    setSliderPosition(int)//设置滑块初始化后处的位置
//特殊要求时,需要设置以下
void    setTracking(bool enable)//设置是否追踪,默认true,追踪时,只要滑块值在改变,它就不断发出信号(较多次),false时,只在松开滑块值改变时才发出(较少次)具体可试试例子的输出
void    setInvertedAppearance(bool)//设置成true后,最大最小值位置调换,且点击箭头时,滑块向相反方向走
void    setInvertedControls(bool)
void    setSliderDown(bool)
//以下取回值,绝大部分与以上对应
int value() const
int maximum() const
int minimum() const
int singleStep() const
int pageStep() const
int sliderPosition() const  

bool    hasTracking() const
bool    invertedAppearance() const
bool    invertedControls() const
bool    isSliderDown() const  

void    triggerAction(SliderAction action)
Qt::Orientation     orientation() const  

公有槽函数如下:

void    setOrientation(Qt::Orientation)//代码创建的默认为竖直向的,需要横向的可设置这个,枚举值在下方
void    setRange(int min, int max)//设置值在变化范围,与setMinimun与setMaxmun两函数效果相同
void    setValue(int)  

enum Qt::Orientation:

Constant    Value
Qt::Horizontal  0x1
Qt::Vertical    0x2  

信号如下:

void    actionTriggered(int action)
void    rangeChanged(int min, int max)
void    sliderMoved(int value)
void    sliderPressed()
void    sliderReleased()
void    valueChanged(int value)//一般使用这个  

——————————————————————————————————————————————————————

QScrollBar大多函数都继承自上述类,

它的公有函数只有构造函数:

QScrollBar(QWidget * parent = 0)
QScrollBar(Qt::Orientation orientation, QWidget * parent = 0)
~QScrollBar()  

示例如下:

#include "dialog.h"
#include "ui_dialog.h"
#include <QGridLayout>
#include <QScrollBar>
#include <QDebug>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    ScrollBar=new QScrollBar;
    ScrollBar->setMinimum(5);
    ScrollBar->setMaximum(20);
    ScrollBar->setSingleStep(2);
    ScrollBar->setPageStep(5);
    ScrollBar->setSliderPosition(10);
    ScrollBar->setOrientation(Qt::Horizontal);//将它改为水平的
    //ScrollBar->setInvertedAppearance(true);
    //ScrollBar->setInvertedControls(true);
    //ScrollBar->setTracking(false);  

    QGridLayout *Layout = new QGridLayout;//布局类,用于将部件显示到建立的ui上
    Layout->addWidget(ScrollBar, 0, 0);
    setLayout(Layout);  

    connect(ScrollBar,SIGNAL(valueChanged(int)),this,SLOT(SB_value_changed(int)));//连接信号,值一变就输出
}  

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

void Dialog::SB_value_changed(int a)
{
    qDebug()<<a;
}  

————————————————————————————————————————————————————————————

QSlider相比而言,

多出了tick(记号,翻译成刻度比较好),它在中心线的两端加了刻度用于标记值。

公有函数如下:

<span style="white-space:pre">  </span>QSlider(QWidget * parent = 0)
<span style="white-space:pre">  </span>QSlider(Qt::Orientation orientation, QWidget * parent = 0)
<span style="white-space:pre">  </span>~QSlider()
void    setTickInterval(int ti)//设置刻度间隔
void    setTickPosition(TickPosition position)//刻度位置,枚举值,见下方
int tickInterval() const
TickPosition    tickPosition() const  

刻度位置的枚举值enum QSlider::TickPosition

QSlider::NoTicks 0 无刻度,默认
QSlider::TicksBothSides 3 中线两端绘制
QSlider::TicksAbove 1 绘制线的上方
QSlider::TicksBelow 2 线下方
QSlider::TicksLeft TicksAbove 线左方
QSlider::TicksRight TicksBelow 线右方

设置刻度后图:

代码:

Slider=new QSlider;
Slider->setOrientation(Qt::Horizontal);
Slider->setTickPosition(QSlider::TicksAbove);
Slider->setTickInterval(5);  

其它常用函数及信号都来自抽象类,这里不赘述
————————————————————————————————————————————————————————————

QDial同Qslider类似,也多了个notch(刻痕)的概念

公有函数如下:

 QDial(QWidget * parent = 0)
~QDial()
int notchSize() const
qreal   notchTarget() const
bool    notchesVisible() const
void    setNotchTarget(double target)//notch target指两刻度之间的像素距离,默认3.7px
bool    wrapping() const  

公有槽:

void    setNotchesVisible(bool visible)//设置刻痕是否可见,默认不可见
void    setWrapping(bool on)  

wrap有缠绕,盘绕的意思,可理解为首尾相接,设置成true(左)与不设置false效果分别如下:

时间: 2024-10-07 22:08:03

Qt Widgets——抽象滑块及其继承类的相关文章

Qt Widgets——抽象旋转框及其继承类

默认外观分别如下(win7,与上述顺序对应): 可看出,都是由一个可编辑的文本框及右端小箭头组成 QAbstractSpinBox 属性简单解释如下: Properties accelerated : bool加速 acceptableInput : const bool接受输入 alignment : Qt::Alignment对齐方式 buttonSymbols : ButtonSymbols右端按钮样式 correctionMode :纠正模式 CorrectionMode frame :

【C/C++学院】0822-类型转换函数与构造转换函数/类的继承/类的继承以及区别/继承静态成员与静态函数//继承实现代码重用/单继承QT案例/多继承简介以及实战/Gpu编程

类型转换函数与构造转换函数 #include<iostream> class fushu { public: explicit fushu(int num)//避免隐式转换,引发歧义 { x = num; y = num; } void print() { std::cout << x << "+" << y << "i" << std::endl; } operator int(); //不支

Qt Widgets——主窗口及其主要组成部分

Main Window and Related Classes QAction 动作类,用于当做一个菜单项或工具项插入菜单或工具栏 QActionGroup 动作组,用于管理多个动作,设置它们之间的互斥性等 QWidgetAction 部件动作,继承自QAction,用于将小部件插入菜单或工具栏 QDockWidget 悬浮部件,程序运行后可鼠标拖动的部件 QMainWindow 主窗口,是其它部件的容器 QMdiArea 子区域,加到QMainWindow中,用于放置多个QMdiSubWind

Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示

Android 系统版本很多,较新的 4.4 ,较老的 2.3 ,都有人用. Qt on Android 开发的 Android 应用,默认在 Android 设备上是非全屏的.而有些应用的需求是全屏显示,比如游戏.那么怎么样才能做到这点呢? 请给我的决赛文章<Qt Quick 图像处理实例之美图秀秀(附源码下载)>投票,谢谢. 我们需要分 Android 系统版本来说. Android 2.x 对于 4.0 以前,比如 2.2 . 2.3 的系统,可以修改 AndroidManifest.x

Asp.net MVC中三大描述对象之ActionDescriptor 以及继承类ReflectedControllerDescriptor

ActionDescriptor抽象类中几个基本的属性: ControllerName:被描述的Controller名称,去除后缀Controller的名称.例如:HomeController则为Home. ControllerType:属性类型为Type,很好理解为被描述Controller的类型. UniqueId:该属性是用来唯一标识当前描述的Controller的.在其唯有的保护的构造函数中赋值,则说明每一个描述每一个Controller都有唯一的UniqueId.UniqueId的 获

QEvent整理归纳:140种类型,29个继承类,7个函数,3种事件来源

140种事件类型: QEvent::None QEvent::AccessibilityDescription QEvent::AccessibilityHelp QEvent::AccessibilityPrepare QEvent::ActionAdded QEvent::ActionChanged QEvent::ActionRemoved QEvent::ActivationChange QEvent::ApplicationActivate QEvent::ApplicationAct

非专业码农 JAVA学习笔记 3 抽象、封装和类(2)

(2).静态域-放在内存公共存储单元,不放在特定的对象,用static修饰 (续上一篇<非专业码农 JAVA学习笔记 3 抽象.封装和类(1)>...) (3).静态初始器-由static引导的一对大括号括起来的语句组,作用跟构造函数相似 (4).最终域-final引导的,值在整个过程都不发生改变的 5.方法 (1)方法的定义:修饰词1 修饰词2…返回值类型 方法名(参数) throw[异常列表] 这里个人经验就是注意定义了返回值的方法,要在方法体里面增加return 该类型变量:此外遇到if

Qt动画架构中的主要类

Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnimation是所有动画类的祖宗.它包含了所有动画的基本属性.比如开始,停止和暂停一个动画的能力.它也可以接收时间改变通知. 动画框架又进一步提供了QProertyAnimation类.它继承自QVariantAnimation并对某个Qt属性(它须是Qt的"元数据对象系统"的一部分,见http

面向对象的三个特征:封装(抽象)、继承、多态

面向对象的三个特征:封装(抽象).继承.多态. 继承:一种代码重用的方式. 1.父类(基类,超类) 2.子类 1).子类在同一个包下面能够范文父类除了私有private修饰的所有属性和方法 2).在不同包下面,子类对象只能访问public修饰的属性和方法 3).在子类内部,如果不同包的情况下,可以访问protected修饰的属性和方法,但是不能访问默认的访问修饰符修饰的属性和方法 4).子类在初始化的时候会先调用父类的默认不带参数构造器,如果没有,就会报错,我们只有人为的修改: 1.将父类添加一