目录
- 一、Line Edit
- 二、Text Edit
- 三、ComBo
- 四、DateTimeEdit
- 五、Slider
一、Line Edit
QLineEdit 用来表示单行输入框,可以输入一段文本,但是不能换行。
属性 | 说明 |
---|---|
test | 输入框中的文本 |
inputMask | 输入内容格式约束 |
maxLength | 最大长度 |
frame | 是否添加边框 |
echoMode | 显示方式,normal,Password:隐藏,使用*代替,NoEcho:不显示任何字符 |
alignment | 文本对齐方式 |
dragEnabled | 是否允许拖拽 |
readOnly | 是否不可修改 |
placeHolderTest | 输入框为空时,显示的提示信息 |
clearButtonEnabled | 清除按钮 |
实例
获取lineEdit中信息打印出来
在ui中拖入几个lineEdit以及label和pushbutton
给提交设置槽函数
#include "widget.h"
#include "ui_widget.h"
#include<QLineEdit>
#include<QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//编辑用户名//默认显示内容ui->lineEdit_name->setPlaceholderText("请输入用户名");//编辑密码//默认显示内容ui->lineEdit_password->setPlaceholderText("请输入密码");//内容显示为密码格式ui->lineEdit_password->setEchoMode(QLineEdit::Password);//添加清除按钮ui->lineEdit_password->setClearButtonEnabled(true);//编辑手机号ui->lineEdit_phone->setPlaceholderText("请输入手机号");}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QString gender = ui->radioButton_male->isChecked()?"男":"女";qDebug()<<"用户名:"<<ui->lineEdit_name->text()<<"密码:"<<ui->lineEdit_password->text()<<"性别"<<gender<<"电话号:"<<ui->lineEdit_phone->text();}//复选框槽函数,用来显示LineEdit中密码是否可见
void Widget::on_checkBox_toggled(bool checked)
{if(checked){ui->lineEdit_password->setEchoMode(QLineEdit::Normal);}else{ui->lineEdit_password->setEchoMode(QLineEdit::Password);}
}
实现效果
二、Text Edit
QTextEdit 表示多行输入框.也是一个富文本& markdown编辑器.
并且能在内容超出编辑框范围时自动提供滚动条.
属性 | 说明 |
---|---|
markdown | 输入框内持有的内容.支持 markdown 格式.能够自动的对markdown 文本进行渲染成 html |
html | 输入框内持有的内容.可以支持大部分 html标签.包括 img 和 table 等 |
placeHolderText | 输入框为空时提示的内容, |
readOnly | 是否只读 |
undoRedoEnable | 是否开启undo、redo功能 ctrl+z触发undo,ctrl+y触发redo |
autoFormating | 开启自动格式化 |
tabstopWidth | 按下缩进占多少空间 |
overwirteMode | 是否开启覆盖模式 |
信号 | 说明 |
---|---|
textChanged() | 文本内容被修改 |
selectionChanged() | 选中区域被修改 |
cursorPositionChanged() | 光标位置被修改 |
undoAvaliable(bool) | undo操作时触发 |
redoAvaliable(bool) | redo操作时触发 |
copyAvaliable(bool) | 文本被选中/取消时触发 |
实例:
先在ui中拖入需要的控件,一个TestEdit
//修改TestEdit中内容触发该信号 testChanged()
void Widget::on_textEdit_textChanged()
{qDebug()<<"textchanged: "<<ui->textEdit->toPlainText();
}
//选择TestEdit中内容触发信号 selectionChanged()
void Widget::on_textEdit_selectionChanged()
{QTextCursor cursor = ui->textEdit->textCursor();qDebug()<<"selectionChanged: "<<cursor.selectedText();
}
//光标位置移动时触发
void Widget::on_textEdit_cursorPositionChanged()
{QTextCursor cursor = ui->textEdit->textCursor();qDebug()<<"cursorPositionChanged: "<<cursor.position();
}
三、ComBo
QComboBox 表示下拉框
属性 | 说明 |
---|---|
currentText | 当前选中的文本 |
currentIndex | 当前选中的条目下标 |
editable | 是否允许被修改 |
iconSize | 下拉框大小 |
maxCount | 最多允许多少个条目 |
addItem(const QString&) | 添加一个条目 |
currentText() | 获取当前条目的文本内容 |
信号
信号 | 说明 |
---|---|
activited(int) activited(const QString&) | 当用户选择一个选项时发出,点开下拉框,鼠标滑过某个选项,但是还没有做出选择 |
currentIndexChange(int) currentIndexChange(const QString&) | 当前选择改变时发生 |
editTextChange(const QString&) | 当编辑框中内容发生改变时发出 |
实例
显示下拉框中内容
方法① 使用代码设置条目内容
方法② 右键控件点击编辑项目
从文件中读取下拉列表条目
//读取文件中内容,将文件中内容读取作为combobox的选项std::ifstream file("C:/Users/HP/Desktop/config.txt");if(!file.is_open()){qDebug()<<"读取失败";return;}//按行读取文本std::string line;while(std::getline(file,line)){//取到的内容设置到下拉框中//QString中静态方法,将string转化为QStringui->comboBox->addItem(QString::fromStdString(line));}file.close();
四、DateTimeEdit
属性 | 说明 |
---|---|
dateTime | 时间日期的值 |
date | 单纯日期的值 |
time | 单纯时间的值 |
displayFormat | 时间的日期格式 |
minimumDateTime | 最小日期时间 |
maximumDateTime | 最大日期时间 |
timeSpec | Qt::LocalTime 显示本地时间 Qt::UTC 显示协调世界时 Qt::OffsetFromUTC 显示相对UTC偏移量 |
信号
属性 | 说明 |
---|---|
dateChanged(QDate) | 日期改变时触发 |
timeChanged(QTime) | 时间改变时触发 |
dateTimeChanged(QDateTime) | 时间日期任意一个改变时触发 |
实例
计算两个date之间的天数差
五、Slider
QSlider表示一个滑动条
属性 | 说明 |
---|---|
value | 持有的数值 |
minimum | 最小值 |
maximum | 最大值 |
singleStep | 按下方向键时改变的步长 |
sliderPosition | 滑动条显示的初始位置 |
tracking | 外观是否跟随数值变化 |
orientation | 滑动条是水平还是垂直 |
invertedAppearance | 是否翻转滑动跳长方向 |
tickPosition | 刻度的位置 |
tickInterval | 刻度的密集程度 |
信号
属性 | 说明 |
---|---|
valueChanged(int) | 数值变化时发出 |
rangeChanged(int,int) | 范围变化时发出 |
实例
通过滑动条改变窗口大小
为滑动条增加快捷键控制窗口大小
#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
#include<QRect>
#include<QShortcut>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->horizontalSlider->setMinimum(0);ui->horizontalSlider->setMaximum(1800);ui->horizontalSlider->setSliderPosition(800);QShortcut* shortcut1 = new QShortcut(this);shortcut1->setKey(QKeySequence("-"));connect(shortcut1,&QShortcut::activated,this,&Widget::Sub);QShortcut* shortcut2 = new QShortcut(this);shortcut2->setKey(QKeySequence("="));connect(shortcut2,&QShortcut::activated,this,&Widget::Add);}Widget::~Widget()
{delete ui;}void Widget::Add()
{int value = ui->horizontalSlider->value();ui->horizontalSlider->setValue(value+20);
}void Widget::Sub()
{int value = ui->horizontalSlider->value();ui->horizontalSlider->setValue(value-20);
}void Widget::on_horizontalSlider_valueChanged(int value)
{QRect rect = this->geometry();this->setGeometry(rect.x(),rect.y(),value,rect.height());
}
效果