找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

Qt编程1200例子-QSpinBox的基本操作

admin 2019-2-9 11:47 216人围观 Qt相关

作者:Qt编程

0034设置QspinBox的值


QSpinBox*spin=newQSpinBox(this);

   spin->setValue(10);

这里没有什么好赘述的

0035 设置QspinBox的上下限


setMaximum()和setMinimum()函数用于设置上下限,在很多类里面都可以看到这种函数。

spin->setMaximum(20);

spin->setMinimum(9);

如上的代码将会限制数值只能在9-20之间,而不能超出范围,即使你手动输入也不可以

还有一种就是直接设置范围:

spin->setRange(0,100);

将会直接控制数值在0-100之间

0036设置QspinBox的数据展示进制


setDisplayIntegerBase()函数用于决定数据以哪种进制展示,默认的是10进制。

spin->setDisplayIntegerBase(16);

以上的这段代码,将会使得spin中的数值,按照16进制的数据显示

0037响应数值变化



响应的原理很简单,就是根据每次改变数值发射出的信号,来实现响应的变化,Qt中的信号槽机制,是用来响应一些操作的最方便形式。

首先声明一个槽出来:

   publicslots:

voidtitleChanged(inta);

然后我们连接信号和槽:

connect(spin,SIGNAL(valueChanged(int)),this,SLOT(titleChanged(int)));

最后在槽函数中实现相应的功能:

voidMainWindow::titleChanged(inta)

{

    this->setWindowTitle(QString::number(a));

}

运行后,标题将始终等于spin中的值。

0038 设置QspinBox的前后缀


有些时候,你不得不设置前后缀,比如显示金额,相应的要有货币标志;显示距离,要有对应的距离单位。

setPrefix(const QString &prefix)和setSuffix(const QString &suffix)分别用于设置前后缀

示例如下:

        spin->setPrefix("前缀");

   spin->setSuffix("后缀");



0039设置步长


setSingleStep(int val)函数用于设置每一步的长度,简单来说就是每次点击上/下按钮,它的变化幅度,比如我们设置步长为2

spin->setSingleStep(2);

那么,每一次你点击按钮,它的变化值是+2或者-2

0040设置特殊字符


如果你要显示非数字,可能唯一的想法是前后缀才能实现,但是那种实现方式是及其不灵活的。尽管利用QspinBox显示特殊字符的情况很少,Qt还是考虑到了,因此有setSpecialValueText(const QString &txt)来实现这个功能。

spin->setSpecialValueText("特殊字符");



利用这个函数你可以轻易的实现汉字输入。

不过要注意的是,如果你用这种方式带入了浮点数,它依旧会认为是字符而不是数字。

0041 设置浮点数


正如上面所展示的那样,它可以显示和操作数字,可以显示特殊字符,却不能实现对浮点数的操作,也就是说它的数值不能是浮点数。

因此,Qt提供了一个QdoubleSpinBox类来显示

   QDoubleSpinBox*doubleSpin=newQDoubleSpinBox(this);

   doubleSpin->setValue(1.1);

   doubleSpin->setSingleStep(2);




-------------------------------------------------------------------------
我们尊重原创,也注重分享,如若侵权请联系qter@qter.org。
-------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......


关于进行手机实名认证的紧急通知!
按照有关部门要求,论坛类网站必须完成手机实名认证才可以进行发帖等操作。希望大家积极配合,为创建一个和谐文明的社区而贡献自己的力量。我们会对会员的隐私进行严格保密,对大家造成的不便深表歉意! 我知道了