擅长:python、mysql、java
<p>首先,您不必接受Qt Designer中自动指定的名称。只需将<code>objectName</code>属性设置为最合适的。你知道吗</p>
<p>为了迭代多组小部件,有几种QObject方法可用。你知道吗</p>
<p>最强大的是<a href="https://qt-project.org/doc/qt-4.8/qobject.html#findChildren" rel="nofollow">findChildren</a>,它可以基于类递归地搜索对象/小部件:</p>
<pre><code>for child in self.findChildren(QtGui.QLineEdit):
child.setValue(value)
</code></pre>
<p>还有他们的名字:</p>
<pre><code>rgx = QtCore.QRegExp('lineEdit[0-9]+')
for child in self.findChildren(QtGui.QLineEdit, rgx):
child.setValue(value)
</code></pre>
<p>但更简单的技术是使用Qt Designer将所有小部件放在容器小部件(如QWidget、QFrame、QGroupBox等)中,然后使用非递归的<a href="https://qt-project.org/doc/qt-4.8/qobject.html#children" rel="nofollow">children</a>方法对它们进行循环:</p>
<pre><code>for index, child in enumerate(self.groupBox.children()):
child.setValue(value[index])
</code></pre>
<p>您可能还想考虑使用<a href="https://qt-project.org/doc/qt-4.8/qformlayout.html" rel="nofollow">QFormLayout</a>,它提供了一种更结构化的做事方式。这在Qt设计器中可用:只需将<code>Form Layout</code>拖放到主窗体上,然后使用右键单击菜单中的<code>Add form layout row</code>向其添加小部件。你知道吗</p>