社区
Qt
帖子详情
Qt的lineEdit如何只接收int数据
waiting567
2011-03-22 09:43:42
能否设置Qt的lineEdit控件,使其只能接收int型数据?
...全文
864
9
打赏
收藏
Qt的lineEdit如何只接收int数据
能否设置Qt的lineEdit控件,使其只能接收int型数据?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dbzhang800
2011-05-17
打赏
举报
回复
这东西自己控制还是很复杂的,用正则也很难。特别涉及到locale时:
比如:很简单一个整数 "1000",在有的国家,输入“1,000”,而有的国家则是“1.000”
自己来处理这些东西是很恐怖的 ^_^ ,所以最好直接用QSpinBox 或 QValidator 等现成的东西
yzhj2005
2011-03-30
打赏
举报
回复
QLineEdit *lineEdit = new QLineEdit();
QRegExp regExp("[-]{0,1}[0-9]+");
lineEdit->setValidator(new QRegExpValidator(regExp, this));
coblan
2011-03-28
打赏
举报
回复
正则表达式 Qregexp是最直接和推介的方法。。
但是C++就是C++,一切都可以定制。除了上面朋友说的方法外。
最强大,当然也是有点麻烦的是,通过KeyEvent来限制输入为int类型,比如安装个installEvenFilter。呵呵。
法尔我给他
2011-03-26
打赏
举报
回复
个人比较喜欢用正则表达式,调整起来方便,调用也方便
残剑待飞雪
2011-03-25
打赏
举报
回复
监测一下textModified,想怎么控制都行,你可只让输入0,也可以只让输入1 。。。。
shraky
2011-03-24
打赏
举报
回复
ui设计貌似有输入类型的选项,如果你不是纯编写代码的话。
aoxuehan0424
2011-03-24
打赏
举报
回复
QLineEdit *lineEdit = new QLineEdit();
QRegExp regExp("[-]{0,1}[0-9]+");
lineEdit->setValidator(new QRegExpValidator(regExp, this));
就是这个了。
第一行不说了
第二行 新建一个正则表达式,只接受int 包括正负数
第三行是设置lineedit格式!
大熊哥V5
2011-03-23
打赏
举报
回复
用正则表达式吧QRegExp,限制输入信息为数字;
或者用setInputMask()方法。
dbzhang800
2011-03-22
打赏
举报
回复
http://hi.baidu.com/cyclone/blog/item/663709236315e95e925807d1.html
QT
串口通讯并进行
数据
库操作
void Widget::Select() //查询 { QString name = ui->
line
Edit
->text(); model->setFilter(QObject::tr("id = '%1'").arg(name)); //根据姓名进行筛选 model->select(); //显示结果 } void Widget::Delect() //删除当前行 {
int
curRow = ui->tableView->currentIndex().row(); //获取选中的行 model->removeRow(curRow); //删除该行
int
ok = QMessageBox::warning(this,tr("删除当前行!"),tr("你确定" "删除当前行吗?"), QMessageBox::Yes,QMessageBox::No); if(ok == QMessageBox::No) { model->revertAll(); //如果不删除,则撤销 } else model->submitAll(); //否则提交,在
数据
库中删除该行 } void Widget::Add() //插入记录 {
int
rowNum = model->rowCount(); //获得表的行数
int
id = 10; model->insertRow(rowNum); //添加一行 model->setData(model->index(rowNum,0),id); //model->submitAll(); //可以直接提交 } void Widget::Back() //返回全表 { model->setTable("student"); //重新关联表 model->setHeaderData(0,
Qt
::Horizontal, "Time"); model->setHeaderData(1,
Qt
::Horizontal, "Temperature"); model->select(); //这样才能再次显示整个表的内容 } void Widget::Amend() //提交修改 { model->database().transaction(); //开始事务操作 if (model->submitAll()) { model->database().commit(); //提交 } else { model->database().rollback(); //回滚 QMessageBox::warning(this, tr("tableModel"), tr("
数据
库错误: %1").arg(model->lastError().text())); } } void Widget::Get_time() { QString string;
QT
ime current_time =
QT
ime::currentTime();
int
hour = current_time.hour();
int
minute = current_time.minute();
int
second = current_time.second(); //
int
msec = current_time.msec(); string=QString("%1").arg(hour)+":"+QString("%1").arg(minute) +":"+QString("%1").arg(second); ui->Receive->append(string); //qDebug()
int id = 10; model->insertRow(rowNum); //添加一行 model->setData(model->index(rowNum,0),string); model->submitAll(); } void Widget::readMyCom() { QByteArray temp = myCom->readAll(); if(temp.size()!=0) { QString string;
QT
ime current_time =
QT
ime::currentTime();
int
hour = current_time.hour();
int
minute = current_time.minute();
int
second = current_time.second(); //
int
msec = current_time.msec(); string=QString("%1").arg(hour)+":"+QString("%1").arg(minute) +":"+QString("%1").arg(second); ui->Receive->append(string); //qDebug()
int id = 10; model->insertRow(rowNum); //添加一行 model->setData(model->index(rowNum,0),string); model->setData(model->index(rowNum,1),temp); model->submitAll(); data_light=temp.to
Int
(); } ui->Receive->append(temp); } void Widget::openCom() { QString portName = ui->portNameComboBox->currentText(); myCom = new Win_QextSerialPort(portName,QextSerialBase::EventDriven); myCom ->open(QIODevice::ReadWrite); if(ui->baudRateComboBox->currentText()==tr("9600")) myCom->setBaudRate(BAUD9600); else if(ui->baudRateComboBox->currentText()==tr("115200")) myCom->setBaudRate(BAUD115200); myCom->setFlowControl(FLOW_OFF); myCom->setTimeout(500); connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom())); ui->openMyComBtn->setEnabled(false); ui->closeMyComBtn->setEnabled(true); ui->baudRateComboBox->setEnabled(false); ui->portNameComboBox->setEnabled(false); }
QT
在多行文本框中显示
int
型
数据
使用多行文本框不能直接显示
int
型
数据
,需显示
int
数据
必须将其转化为QString格式,有以下两种方法 方法一,使用中间变量(不可以放在长句中)
int
a ; QString s = QString("%1").arg(a); ui→textdisplay→appendPla
inT
ext(s); 方法二,直接转化(这个方法也可以写中间变量)
int
a; ui→textdisplay→appendPla
inT
ext(QString::number(a)); ...
qt
使用
line
edit
实现简单的搜索方法
QT
QT
串口
数据
接收
上位机
QT
串口
数据
接收
上位机1.界面设计2.串口配置3.文件读写4.使用
QT
遇到的一些问题5.上位机程序 1.界面设计 设计的上位机界面如下图所示,包括显示
接收
数据
的文本框和串口的配置区域,以及向采集系统发送开始采集
数据
和停止的Button按钮。 其中,端口和波特率使用的是Input Widgets中的Combo Box 使用时双击,点加号添加元素即可。调用如下函数获取选择的值: ui->comboBox_2->currentIndex() 文本输入框
Line
Edit
获取输入的函数如下: ui
python,py
qt
5,同一界面两个
line
Edit
间发送
接收
数据
py
qt
5,同一界面两个
line
Edit
间发送
接收
数据
Qt
16,175
社区成员
26,581
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章