qt的基本控件——输入控件

输入控件

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();//获取值
posted @ 2022-09-25 18:02  宣哲  阅读(657)  评论(0编辑  收藏  举报