QT中实现QlineEdit在输入时通过调用什么函数可以实现光标左右移动啊?
展开全部
这个用函数的话比较麻烦,但是我实现过了,QLineEdit有2个函数,第一设置光标位置,第二读取当前光标位置。你要在每次操作前都要读取当前光标位置,然后再进行+1 或者-1,零界点你自己考虑,大概的思路是这样的
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()//+
{
int i = ui->lineEdit->cursorPosition();
qDebug() << i;
ui->lineEdit->setCursorPosition(++i);
ui->pushButton->setFocusPolicy(Qt::NoFocus);
ui->pushButton_2->setFocusPolicy(Qt::NoFocus);
ui->lineEdit->setFocus();
}
void Widget::on_pushButton_2_clicked()//-
{
int i = ui->lineEdit->cursorPosition();
qDebug() << i;
ui->lineEdit->setCursorPosition(--i);
ui->pushButton->setFocusPolicy(Qt::NoFocus);
ui->pushButton_2->setFocusPolicy(Qt::NoFocus);
ui->lineEdit->setFocus();
}
刚给你试了下可以的,还要就是注意焦点,让QLineEdit一直获得焦点,代码都给你了,分多点吧
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()//+
{
int i = ui->lineEdit->cursorPosition();
qDebug() << i;
ui->lineEdit->setCursorPosition(++i);
ui->pushButton->setFocusPolicy(Qt::NoFocus);
ui->pushButton_2->setFocusPolicy(Qt::NoFocus);
ui->lineEdit->setFocus();
}
void Widget::on_pushButton_2_clicked()//-
{
int i = ui->lineEdit->cursorPosition();
qDebug() << i;
ui->lineEdit->setCursorPosition(--i);
ui->pushButton->setFocusPolicy(Qt::NoFocus);
ui->pushButton_2->setFocusPolicy(Qt::NoFocus);
ui->lineEdit->setFocus();
}
刚给你试了下可以的,还要就是注意焦点,让QLineEdit一直获得焦点,代码都给你了,分多点吧
追问
这三个头文件
#include "widget.h"
#include "ui_widget.h"
#include
能否发给我?1044894150@qq.com
谢谢啦
追答
这头文件自带的
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询