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関数(ファンクターまたはラムダ)を提供できます。

于 2013-02-03T09:08:53.387 に答える