0

我正在使用 QtCreator,并在单个小部件中创建了带有 LineEdit 对象的 GUI。当我想返回一个小部件的对象时,我调用:

QList<QLineEdit *> boxes = ui->gridLayoutWidget->findChildren<QLineEdit *>();

不幸的是,这些对象在 QList 中的顺序取决于它们在“ui”文件中出现的顺序。我怎么能去改变订单?

例如,我的 ui 文件如下所示:

<layout class="QGridLayout" name="gridLayout">
 <item row="5" column="8" alignment="Qt::AlignHCenter|Qt::AlignVCenter">
  <widget class="QLineEdit" name="le_e7">
  </widget>
 </item>
 <item row="8" column="2" alignment="Qt::AlignHCenter|Qt::AlignVCenter">
  <widget class="QLineEdit" name="le_g3">

等等。我有遵循“a1、a2、a3 等”约定的 QLineEdit 对象。但是它们看起来像上面的代码一样乱序。

4

1 回答 1

0

您可以对 QList 进行排序,使用qSort并提供您自己的lessThan函数(函子或 lambda),它将按照您需要的顺序对列表进行排序。

于 2013-02-03T09:08:53.387 回答