如何知道哪个QLineEdit聚焦?

问题描述 投票:0回答:1

我是 QT 新手。有人可以帮我解决这个问题吗?

我正在用三个

QMainWindow
小部件编写一个小部件应用程序(使用
QLineEdits
),我使用
setText
设置随机文本并将
timeout()
signal 连接到 slot。当计时器“中断”时,我想知道光标在哪个
QLineEdit

主窗口构造函数:

ui->setupUi(this);
timer = new QTimer(this);
timer -> start(1000); // 1 sec
connect(timer, SIGNAL(timeout()), this, SLOT(FinishTimer()));
ui->lineEdit1->setText("Line1");
ui->lineEdit2->setText("Line2");
ui->lineEdit1->setFocus();

在完成计时器功能中,我想移动光标,但首先我需要知道我在哪个

QLineEdit
以及光标的位置。

FinishTimer 插槽:

QString debug;
debug = this->focusWidget()->objectName(); //this is a debug line, it works fine 
// this line doesn't work
int position = this->focusWidget()->cursorPosition();

cursorPosition
QLineEdit
的一种方法,错误是“
class QWidget has no member named 'cursorPosition'
”。希望你能理解我。

qt user-interface qlineedit
1个回答
1
投票

我用了

qobject_cast
,效果非常好。谢谢

position=qobject_cast<QLineEdit*>(this->focusWidget())->cursorPosition();
© www.soinside.com 2019 - 2024. All rights reserved.