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

默认外观分别如下(win7,与上述顺序对应):

可看出,都是由一个可编辑的文本框及右端小箭头组成

QAbstractSpinBox

属性简单解释如下:

Properties

公有函数如下:

    QAbstractSpinBox(QWidget * parent = 0)
    ~QAbstractSpinBox()
//下方为设置部分
void    setAccelerated(bool on)//设置加速开关,默认关。开启时,长按右端小箭头,值的增大速度由慢变快,适合值的大范围变化
void    setAlignment(Qt::Alignment flag)//对齐方式,默认左对齐,参数枚举型,有 Qt::AlignLeft, Qt::AlignRight, 和 Qt::AlignHCenter.
void    setButtonSymbols(ButtonSymbols bs)//右方上下箭头样式,默认图中的样式,也可以是加减号,可选枚举值见下方
void    setCorrectionMode(CorrectionMode cm)//纠正模式,用户输入非法字符时调用,有恢复前一值及取一个最接近的值,默认前者,枚举值见下方
void    setFrame(bool)
void    setKeyboardTracking(bool kt)//按键追踪,默认true,此时,当用户输入的值变化时,信号valueChanged()不断发出,false时,失去焦点或点击箭头时才发出
void    setReadOnly(bool r)//只读,不可编辑
void    setSpecialValueText(const QString & txt)//设置一个特殊值,经实验,当设置一个变化值0-100,变化时,当最后值为0时,却不显示0,而显示这个txt,用于让应用程序判断哪个值合适……
void    setWrapping(bool w)//设置循环,值增长到最大时,自动跳到最小值,返之亦然
//下方为取值部分,与上述对应
bool    isAccelerated() const
Qt::Alignment   alignment() const
ButtonSymbols   buttonSymbols() const
CorrectionMode  correctionMode() const
bool    hasFrame() const
bool    keyboardTracking() const
bool    isReadOnly() const
QString specialValueText() const
bool    wrapping() const
//其它功能
QString text() const//取得文本框内所有字符
bool    hasAcceptableInput() const
void    interpretText()
virtual void    fixup(QString & input) const
virtual void    stepBy(int steps)
virtual QValidator::State   validate(QString & input, int & pos) const//用于判断输入是否满足正则,用于被重载  

按钮样式枚举值:enum QAbstractSpinBox::ButtonSymbols

QAbstractSpinBox::UpDownArrows 0 上下箭头
QAbstractSpinBox::PlusMinus 1 +与-
QAbstractSpinBox::NoButtons 2 不显示

纠正模式枚举值:enum QAbstractSpinBox::CorrectionMode

Constant Value Description
QAbstractSpinBox::CorrectToPreviousValue 0 恢复成上一值(默认)
QAbstractSpinBox::CorrectToNearestValue 1 取一个最近值.

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

QSpinBox

与上述抽象类相对,多出了以下外观属性:

Properties

displayIntegerBase比较特殊,用于改变基本显示字符。它默认值为10,即我们常用的数字0-9,这时,值变化和我们常用的数字无差别。如果设置这个值成13,则进入旋转的基本字符除0-9外,增加了a,b,c,共13个,这样,值的变化为:0,1,2,3,4,5,6,7,8,9,1a,1b,1c,10,11……19,2a,2b,2c,20,21………

少于10时,如设置成3时,就成:0,1,2,10,11,12……

公有函数如下:

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

void    setMaximum(int max)//设置最大值
void    setMinimum(int min)
void    setPrefix(const QString & prefix)//加前辍,如让它显示 “值 10 元”,值即是前辍,元是后辍
void    setSuffix(const QString & suffix)//加后辍
void    setRange(int minimum, int maximum)//设置范围
void    setSingleStep(int val)//设步长,每点一次按钮改变的值(在原基础上加上或减去该值)
void    setDisplayIntegerBase(int base)  

int maximum() const
int minimum() const
QString prefix() const
int singleStep() const
QString suffix() const
int value() const
QString cleanText() const
int displayIntegerBase() const  

示例代码如下:

    ui->spinBox->setRange(10,30);
    ui->spinBox->setSingleStep(5);
    ui->spinBox->setPrefix("值");
    ui->spinBox->setSuffix("元");
    qDebug()<<"value()返回值:"<<ui->spinBox->value();
    qDebug()<<"cleanText()返回值:"<<ui->spinBox->cleanText();  

输出:

value()返回值: 10

cleanText()返回值: "10"

返回值的类型不同

Public Slots

void setValue(int val)

Signals

void valueChanged(int i)
void valueChanged(const QString & text)

上述两信号的不同在于前一个参数单单返回值,而后一个包括前后辍。

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

QDoubleSpinBox

其属性如下:

Properties

decimals意思为小数(位数),用于设置精度级别,默认两位小数。

公有函数如下:

Public Functions
QDoubleSpinBox(QWidget * parent = 0)
~QDoubleSpinBox()
QString cleanText() const
int decimals() const
double  maximum() const
double  minimum() const
QString prefix() const
void    setDecimals(int prec)
void    setMaximum(double max)
void    setMinimum(double min)
void    setPrefix(const QString & prefix)
void    setRange(double minimum, double maximum)
void    setSingleStep(double val)
void    setSuffix(const QString & suffix)
double  singleStep() const
QString suffix() const
virtual QString textFromValue(double value) const
double  value() const
virtual double  valueFromText(const QString & text) const  

Public Slots

void setValue(double val)

Signals

void valueChanged(double d)
void valueChanged(const QString & text)

都是说过的,只列出来好了。
————————————————————————————————————————————————————————————

QDateTimeEdit

它的文本框默认分为六个部分(sections),“2000/1/1 0:00:00”,即“年/月/日  时:分:秒”六部分。

各部分枚举值

enum QDateTimeEdit::Section
flags QDateTimeEdit::Sections

Constant Value
QDateTimeEdit::NoSection无 0x0000
QDateTimeEdit::AmPmSection上午Am或下午Pm 0x0001
QDateTimeEdit::MSecSection毫秒 0x0002
QDateTimeEdit::SecondSection秒 0x0004
QDateTimeEdit::MinuteSection分 0x0008
QDateTimeEdit::HourSection时 0x0010
QDateTimeEdit::DaySection日 0x0100
QDateTimeEdit::MonthSection月 0x0200
QDateTimeEdit::YearSection年 0x0400

属性如下:

Public Functions  

QDateTimeEdit(QWidget * parent = 0)
QDateTimeEdit(const QDateTime & datetime, QWidget * parent = 0)
QDateTimeEdit(const QDate & date, QWidget * parent = 0)
QDateTimeEdit(const QTime & time, QWidget * parent = 0)
~QDateTimeEdit()  

void    setCalendarPopup(bool enable)//设置一个下拉列表式的日历选择小部件,如下图1
void    setCalendarWidget(QCalendarWidget * calendarWidget)//可用这个加入一个自定义的日历
void    setCurrentSection(Section section)//将光标转移到某一部分,用以改变该值
void    setCurrentSectionIndex(int index)//与上述功能相同,通过索引时,第一部分索引值为0
void    setDateRange(const QDate & min, const QDate & max)//设置日期范围
void    setTimeRange(const QTime & min, const QTime & max)//设置时间范围
void    setDateTimeRange(const QDateTime & min, const QDateTime & max)//同时设置以上两种
void    setMaximumDate(const QDate & max)//设置最大日期,设置范围了,就不需要了
void    setMaximumDateTime(const QDateTime & dt)
void    setMaximumTime(const QTime & max)
void    setMinimumDate(const QDate & min)
void    setMinimumDateTime(const QDateTime & dt)
void    setMinimumTime(const QTime & min)
void    setDisplayFormat(const QString & format)//设置显示格式,见下方说明3
void    setSelectedSection(Section section)
void    setTimeSpec(Qt::TimeSpec spec)
void    clearMaximumDate()//清除……
void    clearMaximumDateTime()
void    clearMaximumTime()
void    clearMinimumDate()
void    clearMinimumDateTime()
void    clearMinimumTime()  

bool    calendarPopup() const
QCalendarWidget *   calendarWidget() const
Section currentSection() const
int currentSectionIndex() const
QDate   date() const
QTime   time() const
QDateTime   dateTime() const
QString displayFormat() const
QDate   maximumDate() const
QDateTime   maximumDateTime() const
QTime   maximumTime() const
QDate   minimumDate() const
QDateTime   minimumDateTime() const
QTime   minimumTime() const
Sections    displayedSections() const
Section sectionAt(int index) const
int sectionCount() const
QString sectionText(Section section) const
Qt::TimeSpec    timeSpec() const  

1,setCalendarPopup(true);效果,右方箭头也变成下拉列表框(默认是没有弹出来的……)

2,enum Qt::TimeSpec

Constant Value Description
Qt::LocalTime 0 Locale dependent time (Timezones and Daylight Savings Time).
Qt::UTC 1 协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC。
Qt::OffsetFromUTC 2 An offset in seconds from Coordinated Universal Time.
Qt::TimeZone 3 A named time zone using a specific set of Daylight Savings rules.

3,displayFormat 控件文本框内日期时间的显示格式,例如默认的格式可以这样描述 "yyyy/MM/dd hh:mm:ss",从而显示为上图中的那样,用一些特殊的字符代表日期时间的各部分,具体见点击打开链接

槽与信号比较简单,以为只列出:

Public Slots

void setDate(const QDate & date)
void setDateTime(const QDateTime & dateTime)
void setTime(const QTime & time)

Signals

void dateChanged(const QDate & date)
void dateTimeChanged(const QDateTime & datetime)
void timeChanged(const QTime & time)

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

QDateEdit与QTimeEdit

都继承自QDateTimeEdit

查看它们的函数

QDateEdit:

Public Functions

  QDateEdit(QWidget * parent = 0)
  QDateEdit(const QDate & date, QWidget * parent = 0)
  ~QDateEdit()

QTimeEdit:

Public Functions

  QTimeEdit(QWidget * parent = 0)
  QTimeEdit(const QTime & time, QWidget * parent = 0)
  ~QTimeEdit()

除上面的构造函数外,就没有其它函数了,继承除外。

这样,QDateEdit与QTimeEdit可认为QDateTimeEdit通过setDisplayFormat(const QString & format)函数设置格式后产生的便捷部件。

事实上,QDateEdit与QTimeEdit也可以能过继承来的setDisplayFormat()函数设置成QDateTimeEdit的样子。

时间: 2024-10-27 19:49:49

Qt Widgets——抽象旋转框及其继承类的相关文章

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

三个可视类的默认外观分别如下(win7):它们的滑块都处于最小值0处. 理解QAbstractSlider时 可将它想成就是QScrollBar(该小部件的外观比较多地拥有QAbstractSlider属性): 属性列表如下: invertedAppearance : bool外观颠倒 invertedControls : bool控制颠倒 maximum : int最大值 minimum : int最小值 orientation :朝向(横向或竖向)Qt::Orientation pageSt

从Qt谈到C++(二):继承时的含参基类与初始化列表

提出疑问 当我们新建一个Qt的图形界面的工程时,我们可以看看它自动生成的框架代码,比如我们的主窗口名称为MainWindow,我们来看看mainwindow.cpp文件: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { } 不同于一般的继承,这里的父类的括号里带有参数,我们通常都使用过不带参数,甚至不带括号的基类名称.这里的基类为什么带着参数呢? C++继承与构造函数

【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之自定义检索框

1.效果展示 今天这篇文章主要讲解的是自定义搜索框,不仅仅支持搜索,而且可以支持搜索预览,具体请看效果图1.网上也有一些比较简单明了的自定义搜索框,比如Qt之自定义搜索框,讲的也比较详细,不过本文的侧重点不仅仅是搜索,而且包括了检索功能.有兴趣的小伙伴可以看下步骤3的思路讲解. 图1 自定义搜索框 2.功能分析 这个自定义搜索框支持输入一定的数据源,然后通过检索窗口进行搜索数据,匹配到的数据会优先展示到预览下拉框,预览窗口支持hover高亮整行.仔细阅读demo源码的同学可能就会发现其实这个搜搜

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

七:Java之封装、抽象、多态和继承

本文章介绍了关于Java中的面向对象封装.抽象.继承.多态特点 Java面向对象主要有四大特性:封装.抽象.继承和多态. 一.封装 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员. 在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属性,同时也具有eat(),sle

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