QLineEdit将数字转化为字符串,对单个字符的修改

来源:互联网 发布:造纸术的影响 知乎 编辑:程序博客网 时间:2024/06/05 15:16

第一次写博客,记录生活点滴;大笑


 实现qlineedit,获取文本中的特定字符,进行操作;

  1. 光标的移动;
  2. 获取返回的字符;
  3. 替换原有字符;

由于比较简单,直接上代码:

#include "widget.h"#include "ui_widget.h"#include <QKeyEvent>#include <QDebug>Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);    test_num = 1234.56780012000;    ui->lineEdit->setText(QString::number(test_num,'f',11));    length = -1;    //ui->lineEdit->setReadOnly(true);}Widget::~Widget(){    delete ui;}void Widget::keyPressEvent(QKeyEvent *event){    int num = 0;   switch(event->key())   {   case Qt::Key_F4:       if(ui->lineEdit->selectedText()<"0" ||ui->lineEdit->selectedText()>"9" )       {           break;       }        num = ui->lineEdit->selectedText().toInt();       num-- ;       if(num < 0)       {           num = 9;       }       ui->lineEdit->insert(QString::number(num));       ui->lineEdit->cursorBackward(true , 1);       break;   case Qt::Key_F5:       if(ui->lineEdit->selectedText()<"0" ||ui->lineEdit->selectedText()>"9" )       {           break;       }        num = ui->lineEdit->selectedText().toInt();       num++ ;       if(num > 9)       {           num = 0;       }       ui->lineEdit->insert(QString::number(num));      ui->lineEdit->cursorBackward(true , 1);       break;   case Qt::Key_F1:       qDebug()<<QString("0").toInt();       num = ui->lineEdit->text().length();       length++ ;       if(length > num -1)       {           length = 0;       }       ui->lineEdit->setSelection(length,1);       break;   }}


原创粉丝点击