输入控件
1、comboxbox
下拉列表,由按钮和弹出列表组成
双击这个控件,可以往里面加内容,一行一个。
void Widget::on_comboBox_currentIndexChanged(int index)
{
QString str;
switch(index)
{
case 0:
str=ui->comboBox->itemText(0);//获取第0行的字符串
break;
case 1:
str=ui->comboBox->itemText(1);
break;
case 2:
str=ui->comboBox->itemText(2);
break;
case 3:
str=ui->comboBox->itemText(3);
break;
}
QMessageBox::information(this,"你的选择",str,QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);
}
//insertItem(2,"bb");在第二个位置添加一个字符串
2、lineEdit
单行文本输入框,有丰富的输入操作。
密码输入框,修改属性echomode 为Password
ip地址输入框,修改属性
inputMask是输入格式
对齐格式输入,修改属性
提示文本输入,修改属性
是否只读,只读就勾上
带清除按钮的,修改属性
带图片的输入框,先把图片加载一下,图片类型为ico,在构造函数中
ui->lineEdit->setPlaceholderText("这是个带ico的");
QAction *paction=new QAction(this);
paction->setIcon(QIcon(":/new/prefix1/stop.ico"));
ui->lineEdit->addAction(paction,QLineEdit::LeadingPosition);
//对应的槽
QString str;
str=ui->lineEdit->text();//获取单行edit中的内容 字符串
QMessageBox::information(this,"你选择了",str,QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);
//如果是输入的内容是数字那么 str.toInt(),就能得到数字
//信号:
textChanged()文本发生改变
textEdited() 文本编辑信号
cursorPositionChanged()光标发生改变
returnPressed() 回车键或return按键按下信号
editingFinished()回车键或
returnPressed()按键按下信号或者焦点丢失信号
selectionChanged() 只要选择改变这个信号就会被发射
3、text edit 和 plain text edit
获取里面的内容
QString str;
str=ui->textEdit->toPlainText();//获取多行edit中的内容
QMessageBox::information(this,"你选择了",str,QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);
QString str;
str=ui->plainTextEdit->toPlainText();//获取纯文本中的内容
QMessageBox::information(this,"你选择
了",str,QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);
4、spinbox+doublespinbox
这两个都是派生自QAbstractSpinBox的,分别是整数调节按钮和浮点数调节按钮,功能基本是一样的, 只是精度不一样
调解时非法加:按住按钮越加越快
QDoublespinbox设置精度,
void setDecimals(int prec);设置精度接口
调节数值,使文本跟着变化:
void Widget::on_spinBox_valueChanged(int arg1)
{
ui->label->setNum(arg1);
}
void Widget::on_doubleSpinBox_valueChanged(const QString &arg1)
{
ui->label_2->setText(arg1);
}
实现结果:
5、TimeEdit + DateEdit + TimeDateEdit
用来显示时间的,从上往下分别是TimeEdit + DateEdit + TimeDateEdit 注意一下属性的输出格式,这里都是通用的,yyyy:MM:dd:HH:mm:ss 表示 xxxx年:xx月xx日:xx时xx 分:xx秒
获取时间的方式:
//包含头文件:
#include <QTime>
#include <QTimer>
定义QTimer qtimer; //这个是计时器
QTime time=QTime::currentTime();//获取时间 时分秒
ui->timeEdit->setTime(time);
QDate time2=QDate::currentDate();//获取时间 年月日
ui->timeEdit->setDate(time2);
//定义槽函数用来自动设置时间 void timeoutslot();
qtimer.start(1);//时间间隔为1ms,计时器过1ms修改一次
//关联信号和槽,是计时器发的信号,信号为QTimer::timeout
connect(&qtimer, &QTimer::timeout,this, &Widget::timeoutslot);
//槽实现
void Widget::timeoutslot()
{
ui->timeEdit->setTime(QTime::currentTime());
ui->dateEdit->setDate(QDate::currentDate());
ui->dateTimeEdit->setDateTime(QDateTime::currentDateTime());
}
//这里只实现了time的,其他两个的实现照搬这个就好了
//从控件获取时间,调用date()获取年月日调用time获取时分秒
最终实现的结果就是时间随着本地时间改变。
6、dial
一个圆型的范围控制,比如速度计电位计等
valueChanged(int)信号,表示这个被修改了,可以直接获取到控件的值
void Widget::on_dial_valueChanged(int value)
{
ui->label->setNum(value);
}
//代码设置它的值,获取它的值
ui->dial->setValue(66);//获取值
ui->dial->value();//获取值
标签:控件,str,获取,ui,QMessageBox,Yes,输入,qt
From: https://www.cnblogs.com/Mr-black-7/p/16728397.html