QT笔记6__控件_QSpinBox、QDoubleSpinBox、QSilder、QTimeEdit、QDateEdit


QSpinBox和QDoubleSpinBox是通过控制两个上下按钮来对数值进行微调的部件,在界面设计中经常用到 ,而QSliders是通过控制滑动条来对数值进行调整,经常将QSliders搭配前两种控件一起使用。
本文除了介绍QSpinBox和QDoubleSpinBox的基本使用之外,还将简单介绍一下与这两个相似的控件的QDateEdit和QDateTimeEdits,其中QDateEdit是对日期进行微调的控件,而QTimeEdits是对时间进行微调的控件。

一、QSpinBox、QDoubleSpinBox的使用

QSpinBox是对整数进行微调的控件、QDoubleSpinBox是对浮点数进行微调的控件。对该类控件的设置属性主要是包括初始值、调整范围、调整步长、前后缀设置、特殊值显示,实现代码如下:

spinBox的属性设置:范围、前后缀、步长度、特殊格式;
	ui.spinBox->setRange(0, 1000);  //设置范围[0,1000]
	ui.spinBox->setSingleStep(5);   //增加步长;
	ui.spinBox->setValue(100);		//设置初始值
	ui.spinBox->setSuffix(QString::fromLocal8Bit("个")); //设置后缀
	ui.spinBox->setWrapping(true);
	// ui.spinBox->setPrefix(QString::fromLocal8Bit("人数"));
// 	ui.spinBox->setMinimum(0);//设置最小值
// 	ui.spinBox->setMaximum(1000);//设置最小值


	spinBox的属性设置:范围、前后缀、步长度、特殊格式;
	ui.doubleSpinBox->setRange(-10.00, 50.00);  //设置范围[0,1000]
	ui.doubleSpinBox->setSingleStep(0.1);   //增加步长;
	ui.doubleSpinBox->setValue(25.00);		//设置初始值
//  	ui.doubleSpinBox->setSuffix(QString::fromLocal8Bit("度")); //设置后缀
	ui.doubleSpinBox->setPrefix(QString::fromLocal8Bit("摄氏:"));//设置前缀
	ui.doubleSpinBox->setDecimals(2);//设置精度
	ui.doubleSpinBox->setSpecialValueText("Auto-Value");//超出范围显示文档;

以上代码显示结果如下,代码中注明了各种属性的设置函数:
在这里插入图片描述

二、 QSilder的使用

QSilder可实现调节滑动条上的滑动块对数值进行快速的改变,QSlider常常与QSpinBox联合使用;

	//***设置QSpinBox设置:
	ui.spinBox1->setRange(0, 1000);  //设置范围[0,1000]
	ui.spinBox1->setSingleStep(5);   //增加步长;
	ui.spinBox1->setValue(100);		//设置初始值
	ui.spinBox1->setSuffix(QString::fromLocal8Bit("个")); //设置后缀
	
	//****QSlider设置
	ui.horizontalSlider0->setOrientation(Qt::Horizontal);  // 水平方向
	ui.horizontalSlider0->setValue(100); //设置当前值
    //ui.horizontalSlider0->setRange(0, 1000);//设置范围
	ui.horizontalSlider0->setMinimum(0);  // 最小值
	ui.horizontalSlider0->setMaximum(1000);  // 最大值
	ui.horizontalSlider0->setSingleStep(5);  // 步长
	ui.horizontalSlider0->setTickInterval(100);  // 设置刻度间隔
	ui.horizontalSlider0->setTickPosition(QSlider::TicksAbove);  //刻度在上方
	
	//*** 连接信号槽(相互改变)
	connect(ui.spinBox1, SIGNAL(valueChanged(int)), ui.horizontalSlider0, SLOT(setValue(int)));
	connect(ui.horizontalSlider0, SIGNAL(valueChanged(int)), ui.spinBox1, SLOT(setValue(int)));

代码实现效果如下:
在这里插入图片描述

三、信号设置;

  • QSpinBox 常用的信号有:

edtingFinished(),编辑框结束编辑,发射该信号;
valueChanges(QString),编辑框内的值发生改变时候,放射该信号,并且传递编辑框内QString值;
valueChange(int),编辑框内的值发生改变时候,放射该信号,并且传递编辑框内int值;

  • QDoubleSpinBox 常用的信号有:

edtingFinished(),编辑框结束编辑,发射该信号;
valueChanges(QString),编辑框内的值发生改变时候,放射该信号,并且传递编辑框内QString值;
valueChange(double),编辑框内的值发生改变时候,放射该信号,并且传递编辑框内double值;

  • QSlider常用的信号有:

sliderMoved(int),滑动块移动时,发射该信号,并传递当前滑块所代表的int值;
sliderPressed(),滑动块按下时,发射该信号;
sliderReleased(),滑动块松开时,发射该信号;
valueChanged(int), 滑动条的值发生改变时候,放射该信号,并且传递编辑框内int值;

四、QTimeEdit、QDateEdit、QDateTimeEdits

QTimeEdits常用于对时间的显示,而QDateEdit控件用于对日期的显示,基本使用代码如下:

	dateEdit的属性设置:
	ui.dateEdit->setDateTime(QDateTime::currentDateTime());//显示日期设置
	ui.dateEdit->setDisplayFormat("yyyy/MM/dd");//显示格式设置

	timeEdit的属性设置:
	ui.timeEdit->setDateTime(QDateTime::currentDateTime());//显示时间设置
	ui.timeEdit->setDisplayFormat ("HH:mm:ss");//显示格式设置

显示如下:
在这里插入图片描述
关于QTimeEdit、QDateEdit、QDateTimeEdits控件更加详细的了解参考下列链接:

QTimeEdit、QDateEdit:https://blog.csdn.net/liang19890820/article/details/52400160
QDateTimeEdit:https://blog.csdn.net/liang19890820/article/details/52387275

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值