QLineEdit *lineEdit1 = new QLineEdit(this);
QLineEdit *lineEdit2 = new QLineEdit(this);
QLineEdit *lineEdit3 = new QLineEdit(this);
QLineEdit *lineEdit4 = new QLineEdit(this);
QLineEdit *lineEdit5 = new QLineEdit(this);
lineEdit1->setText("1");
lineEdit2->setText("2");
lineEdit3->setText("3");
lineEdit4->setText("4");
lineEdit5->setText("5");
lineEdit1->setFocus(); //程序运行起来,先让焦点在lineEdit1上
//焦点顺序切换策略
QWidget::setTabOrder(lineEdit1,lineEdit2); //1->2
QWidget::setTabOrder(lineEdit2,lineEdit5); //2->5
QWidget::setTabOrder(lineEdit5,lineEdit3); //5->3
QWidget::setTabOrder(lineEdit3,lineEdit4); //3->4
QWidget::setTabOrder(lineEdit4,lineEdit1); //4->1
//通过布局来设置控件位置
QHBoxLayout *hLayout = new QHBoxLayout();
hLayout->addWidget(lineEdit1);
hLayout->addWidget(lineEdit2);
hLayout->addWidget(lineEdit3);
hLayout->addWidget(lineEdit4);
hLayout->addWidget(lineEdit5);
setLayout(hLayout);
焦点的切换顺序如下
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TTIR2cWhkWwRnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zM3gjMxUDN0EDNyUDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
如果加一句 lineEdit3->setFocusPolicy(Qt::NoFocus); //lineEdit3无焦点
结果是,虽然为lineEdit3设置了焦点切换顺序 但是直接跳过了lineEdit3