Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Qt中已分配Qt对象的顺序?_Qt - Fatal编程技术网

如何更改Qt中已分配Qt对象的顺序?

如何更改Qt中已分配Qt对象的顺序?,qt,Qt,我使用的是QtCreator,我在一个小部件中创建了一个带有LineEdit对象的GUI。当我想要返回小部件的对象时,我调用: QList<QLineEdit *> boxes = ui->gridLayoutWidget->findChildren<QLineEdit *>(); QList-box=ui->gridLayoutWidget->findChildren(); 不幸的是,这些对象在QList中的顺序取决于它们在“ui”文件中的显示顺序。我怎

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

QList<QLineEdit *> boxes = ui->gridLayoutWidget->findChildren<QLineEdit *>();
QList-box=ui->gridLayoutWidget->findChildren();
不幸的是,这些对象在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">


等等。我有QLineEdit对象,它们遵循“a1、a2、a3等”的约定,但它们的顺序与上面的代码类似。

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