如何知道哪个QLineEdit关注?

时间:2017-06-23 18:53:14

标签: qt user-interface qlineedit

我是QT的新人。有人可以帮我这个吗?

我正在使用三个QMainWindow小部件对小部件应用程序(QLineEdits)进行编码,我使用setText设置随机文本并连接timeout() < strong>信号到广告位。当计时器&#34; 中断&#34;我想知道光标在哪个QLineEdit

MainWindow构造函数:

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的方法,错误是&#34; class QWidget has no member named 'cursorPosition'&#34;。我希望你能理解我。

1 个答案:

答案 0 :(得分:1)

我使用了qobject_cast,效果非常好。感谢

position=qobject_cast<QLineEdit*>(this->focusWidget())->cursorPosition();