我不会用
QTime
这取决于系统时钟。我会使用
QElapsedTimer
或
QTimer
。
示例
Q定时器
:
#include <QtWidgets>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr) : QWidget(parent)
{
setLayout(new QHBoxLayout);
layout()->addWidget(&line_edit1);
layout()->addWidget(&line_edit2);
focus_timer.setInterval(100);
focus_timer.setSingleShot(true);
connect(&line_edit1, &QLineEdit::textEdited, &focus_timer, QOverload<>::of(&QTimer::start));
connect(&line_edit2, &QLineEdit::textEdited, &focus_timer, QOverload<>::of(&QTimer::start));
connect(&focus_timer, &QTimer::timeout, this, [&]
{
line_edit1.hasFocus() ? line_edit2.setFocus() : line_edit1.setFocus();
});
}
private:
QLineEdit line_edit1;
QLineEdit line_edit2;
QTimer focus_timer;
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
#include "main.moc"