Windows 7 SP1
MSVS 2010
Qt 4.8.4
这段代码:
#include <QTGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow* window = new QMainWindow;
QLineEdit* line_edit = new QLineEdit;
line_edit->setText("ABCDEFG");
line_edit->setFixedSize(40,20);
window->setCentralWidget(line_edit);
window->show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
显示这个:

请注意,“AB”被截断,并且光标位于行编辑的末尾。
我希望它显示:

这里“FG”被截断,光标位于行编辑的开头。
我尝试设置CursorPosition和cursorBackward但无济于事。如果我通过字体度量的 elidedText 转换文本,它将从头开始显示,并带有尾随“...”。但我不想那样做。
问题:有没有办法让光标在显示 QLineEdit 后从其内容的开头开始?
设置文本后将光标位置设置为 0 应该可以正常工作。至少在 Linux Qt 4.8.3 上是这样。
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow* window = new QMainWindow;
QVBoxLayout* layout = new QVBoxLayout;
QLineEdit* line_edit = new QLineEdit;
line_edit->setText("ABCDEFG");
line_edit->setFixedSize(40,20);
line_edit->setCursorPosition(0);
layout->addWidget(line_edit);
window->setCentralWidget(line_edit);
window->show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)