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