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();
}
显示:
请注意,“AB”被截断,光标位于行编辑的末尾。
我希望它显示:
此处“FG”被截断,光标位于行编辑的开头。
我试过setCursorPosition和cursorBackward无济于事。如果我通过字体度量的elidedText转换文本,它将从头开始显示尾部“...”。但我不想这样做。
问题:有没有办法在显示QLineEdit后让光标从其内容的开头开始?
答案 0 :(得分:2)
在设置文本后将光标位置设置为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();
}
答案 1 :(得分:1)
setCursorPosition(0)
对我很好:
// ...
line_edit->setFixedSize(40,20);
line_edit->setCursorPosition(0);
// ...
(Windows,VC ++ 2010,Qt5.0.0)