Qt之plainTextEdit 文本编辑器dial刻度盘spinBox整数计数器QDoubleSpinBox浮点计数器QSlider滑块基础知识
提示:以下是本篇文章正文内容,下面案例可供参考
2.4.5plainTextEdit 文本编辑器
QPlainTextEdit 用来编辑、查看纯文本数据,它可以优化处理大型文档和快速响应用户输入。QPlainText 与
QTextEdit 使用了相同的技术和概念,但是是针对纯文本处理的优化。QPlainTextEdit 也是基于段落工作的,一个
段落就是一个格式化的字符串,一个换行符代表一个段落。使用方法可以参考 QTextEdit 类。
⚫ 创建 QPlainTextEdit 示例
QPlainTextEdit *edit=new QPlainTextEdit(this);
⚫ QPlainTextEdit 常用的接口函数
- 设置 QPlainTextEdit 显示的内容,会覆盖之前的内容。
QString toPlainText() const
void setPlainText(const QString &text)
- 追加文本显示
void QPlainTextEdit::insertPlainText(const QString &text)
- 滚动显示条,显示最后一行
//移动滚动条到底部
QScrollBar *scrollbar = ui->plainTextEdit->verticalScrollBar();
if(scrollbar)
{
scrollbar->setSliderPosition(scrollbar->maximum());
}
⚫ QPlainTextEdit 用到的信号
- textChanged 信号:当文本内容发生改变时发出。
void QPlainTextEdit::textChanged()
其他的用法与 QTextEdit 类似。
2.4.6dial刻度盘
QT 的 QDial 类提供了一个圆形的范围转盘(可以当做速度计或电位计)。QDial 继承于 QAbstractSlider 类,刻度盘
的行为类似于一个滑块。QDial 可以设置输入数值的上限和下限,每次步进的值也可以设置,步进的整数数值属
性为 value。转盘支持通过键盘来改变转盘的数值,键盘的上/下箭头或者左/右箭头控制转盘的步进,Home 键
和 End 键快速设置为整数下限和上限,另外还可以为转盘设置比较大的步进,或叫页进,即 pageStep,按键盘
上的 PageUp 和 PageDown 会根据大步进 pageStep 调整转盘数值。
⚫ 创建一个 QDial 刻度盘
例如:
QDial *qt_qdial = new QDial(this);
qt_qdial->setGeometry(QRect(QPoint(10, 50), QSize(200, 50)));
⚫ QDial 常用的成员函数
- 设置刻度盘的值
int value() const
void setValue(int)
示例:
ui->dial_xl->setValue(20); //设置刻度盘的值
qDebug()<<"当前刻度盘的值:"<<ui->dial_xl->value();
2.设置刻度盘大不进值
按键盘上的PageUp键和PageDown键会根据大步进怕个Step调整转盘数值。
int pageStep() const 获取当前大进步的值
void setPageStep(int) 设置大步进的值
示例:
ui->dial_ll->setPageStep(20);//设置大步进的值为20
qDebug()<<"当前大步进的值:"<<ui->dial_ll->pageStep();//获取当前大步进的值
3.设置刻度盘自然步进值
键盘上的上键\下键会根据setSingleStep调整转盘的数值
int singleStep() const 获取当前自然步进值‘
void setSingleStep(int ) 设置自然步进值
示例:
ui->dial_ll->setSingleStep(10);//设置自然步进的值
qDebug()<<"当前自然步进的值:"<<ui->dial_ll->singleStep();
4.设置刻度盘转动的最大最小值
int minimum() const 获取刻度盘的最小值
void setMinimum(int) 设置刻度盘的最小值
int maximum() const 获取刻度盘的最大值
void setMaximum(int) 设置刻度盘的最大值
示例:
ui->dial_ll->setMinimum(20);
qDebug()<<"最小值"<<ui->dial_ll->minimum();
ui->dial_ll->setMaximum(500);
qDebug()<<"最大值"<<ui->dial_ll->maxmum();
5.设置刻度盘显示刻度
默认visible的值为false,表示不显示刻度值
bool notchesVisible() const 获取刻度盘是否显示刻度
void setNotchesVisible(bool visible) 设置刻度盘显示刻度值,bool值为真表示显示
⚫ QDial 常用的信号
1、sliderPressed信号:鼠标点中控件时发出
void QAbstractSlider::sliderPressed()
2、sliderReleased信号:鼠标释放控件时发出该信号
void QAbstractSlider::sliderReleased()
3、valueChanged信号:刻度盘的值发生改变时发出,信号参数是当前刻度盘的值
void valueChanged(int value)
2.4.7spinBox整数计数器
整数计数器QSpinBox用于接收整数数值输入,QSpinBox允许用户选择一个值通过单击向上/向下按钮或按下键盘上的向上/向下增加/减少当前显示的值。用户也可以手动输入数值。
-
创建Spinbox
QSpinbox *box = new QSpinBox(this);
box->setGeometry(QRect(QPoint(10,50)),QSzie(200,50));
-
下面列出Spinbox常用的成员函数
1、设置spinBox输入数值的上限,默认为99
int maximum() const 获取spinbox上限值
void setMaximum(int max) 设置spinbox上限值
示例:
//设置spinBox的上限值
ui->spinBox_ll->setMaximum(200);
//获取spinBox的上限值
qDebug()<<"spinBox的上限值:"<<ui->spinBox_ll->maximum();
2、设置spinBox输入数值的下限值
默认最小值是0
int minimum() const 获取spinbox下限值
void setMinimum(int min) 设置spinbox下限值
示例:
//设置spinBOX的下限值为-100
ui->spinBox_ll->setMinimum(-100);
//获取spinBox的下限值
qDebug()<<"spinBox的下限值:"<<ui->spinBox_ll->minimum();
3、获取spinbox输入的值
int value() const 获取spinbox输入的值
void setValue(int val) 设置spinbox的值
示例:
//设置spinbox的值
ui->spinBox_ll->setValue(50);
//获取spinBox值
qDebug()<<"spinBox输入的值:"<<ui->spinBox_ll->value();
示例:
//设置spinbox显示的后缀为km
ui->spinBox_ll->setSuffix("Km");
//获取spinbox显示的后缀
qDebug()<<ui->spinBox_ll->suffix();
//设置spinbox显示的前缀为距离
ui->spinbox_ll->setPrefix("距离:");
//获取spinbox显示的前缀
qDebug()<<ui->spinBox_ll->prefix();
5、设置步进值大小
用户可以使用箭头递增/递减来改变计数器的值。
默认值每次递增/递减的值是1。
注意:设置每次递增或递减的值小于0 是无效的
int singleStep() const 获取步进的值
void setSingleStep(int val) 设置步进的值
示例:
//设置步进的值
ui->spinBox_ll->setSingleStep(10);
//获取步进的值
qDebug()<<ui->spinBox_ll->singleStep();
修改spinbox的值会触发以下信号,不管是通过代码直接编辑还是通过上下箭头调整都会触发
void valueChanged(int i) 信号参数是整数数值
void valueChanged(const QString & text) 信号参数是数字字符串
2.4.8QDoubleSpinBox浮点计数器
浮点数计数器QDoubleSpinBox用于接收读点数值输入,与整数计数器基本一样,只是操作的数据类型是浮点数,操作浮点数可以通过对应的函数设置精度。
-
创建QDoubleSpinBox示例
//创建一个QDoubleSpinBox
QDoubleSpinBox *box = new QDoubleSpinBox(this);
//设置doubleSpinBox的尺寸大小与显示位置
box->setGeometry(QRect(QPoint(10,50)),QSize(200,50));
-
QDoubleSpinBox常用的成员函数
1、设置浮点数的精确度
默认的精确度为小数点后两位,最大的精确度可以设置为323.
int decimals() const 获取浮点数符精确度
void setDecimals(int prec) 获取浮点数的精确度
示例:
//设置doubleSpinBox浮点数的精度
ui->doubleSpinBox_ll->setDecimals(325);
qDebug()<<"浮点数的精度:"<<ui->doubleSpinBox_ll->decimals();
Doublespinbox 其他功能函数与 QSpinBox 的函数一样,只是操作的类型为浮点类型,可以参考 QSpinBox。
-
Doublespinbox 常用的信号
修改doublespinbox 的值会触发以下信号,不管是通过代码直接编辑还是通过上下箭头调整都会触发
void valueChanged(double d) 信号参数是浮点数值
void valueChanged(const QString & text) 信号参数是浮点数字符串
2.4.9QSlider滑块
QT 的 QSlider 类提供了一个垂直和水平滑动条。滑块是典型的小控件,用于控制一个有效的范围值。它允许用户沿水平或垂直移动滑块,将滑动的范围值转换成一个整数值。QSlider 大部分函数都继承于 QAbstractSlider类。QSlider 滑块控件常用于音量控制、视频播放器的进度条等场合。
1、创建一个QSlider示例
QSlider *lider = new QSlider(this);
lider->setOrientation(Qt::Horizontal);//创建横向滑块
默认QSlider创建的是纵向滑块,可以通过setOrientation函数进行修改样式。
2、QSlider常用的成员函数
-
判断滑块是否按下
bool isSliderDown() const //获取滑块的状态
void setSliderDown(bool) //设置滑块的状态
-
获取滑块当前的位置值
int sliderPosition() const //获取滑块当前的位置值
void setSliderPosition(int) //设置滑块的位置值
当滑块的位置发生改变时会发出sliderMoved信号。
-
启用跟踪属性
bool hasTracking() const
void setTracking(bool enable)
该属性默认为true,表示启用了跟踪功能,该功能主要针对valueChanged信号;如果启用了跟踪功能,每当滑块的值发生改变时,就会实时发出valueChanged信号;否则只有在用户松开时才会发出valueChanged信号。
-
获取滑块当前的值
int value() const //获取滑块的值
void setValue(int) //设置滑块的值
与sliderPosition函数功能一样。当滑块的值发生改变时会发出valueChanged信号
-
设置滑块方向
滑块默认是垂直方向。Qt::Orientation是一个枚举类型:Qt::Horizontal表示水平方向,Qt::Vertical表示垂直方向。
Qt::Orientation orientation() const
void setOrientation(Qt::Orientation)
-
设置滑块最大最小值
void QAbstractSlider::setRage(int min,int max)
也可以通过以下函数单个设置:
int minimum() const //获取最小值
void setMinimum(int) //设置最小值
int maximum() const //获取最大值
void setMaximum(int) //设置最大值
-
设置滑块每步的滑动值
int singleStep() const
void setSingleStep(int)
3、QSlider 常用的信号
-
valueChanged 信号:当滑块的值发生改变时发出,形参表示滑块改变后的新值
void QAbstractSlider::valueChanged(int value)
-
sliderPressed 信号:当鼠标按下滑块时发出。
void QAbstractSlider::sliderPressed()
-
sliderReleased 信号:当鼠标松开滑块时发出。
void QAbstractSlider::sliderReleased()
-
sliderMoved 信号:移动滑块时发出该信号,形参表示滑块移动后的新值。
void QAbstractSlider::sliderMoved(int value)