我是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;。我希望你能理解我。
答案 0 :(得分:1)
我使用了qobject_cast
,效果非常好。感谢
position=qobject_cast<QLineEdit*>(this->focusWidget())->cursorPosition();