我已经在QDialog表单中添加了一个QScrollArea小部件。
在scrollarea中,我添加了16个chcekboxes。
我想要在scrollarea中循环,并检查选中了哪些复选框。
有没有人能帮我。提前感谢!
ScrollArea和Checkbox的代码如下:
<widget class="QScrollArea" name="scrollArea">
<property name="geometry">
<rect>
<x>20</x>
<y>320</y>
<width>271</width>
<height>206</height>
</rect>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>252</width>
<height>420</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox1">
<property name="text">
<string>1</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QCheckBox" name="checkBox7">
<property name="text">
<string>2</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="checkBox5">
<property name="text">
<string>3</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="checkBox2">
<property name="text">
<string>4</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox0">
<property name="text">
<string>5</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="checkBox3">
<property name="text">
<string>6</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="checkBox6">
<property name="text">
<string>7</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="checkBox4">
<property name="text">
<string>8</string>
</property>
</widget>
</item>
<item row="12" column="0">
<widget class="QCheckBox" name="checkBox12">
<property name="text">
<string>9</string>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QCheckBox" name="checkBox10">
<property name="text">
<string>10</string>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QCheckBox" name="checkBox11">
<property name="text">
<string>11</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QCheckBox" name="checkBox9">
<property name="text">
<string>Signal Mask</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QCheckBox" name="checkBox8">
<property name="text">
<string>12</string>
</property>
</widget>
</item>
<item row="15" column="0">
<widget class="QCheckBox" name="checkBox15">
<property name="text">
<string>13</string>
</property>
</widget>
</item>
<item row="14" column="0">
<widget class="QCheckBox" name="checkBox14">
<property name="text">
<string>14</string>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QCheckBox" name="checkBox13">
<property name="text">
<string>15</string>
</property>
</widget>
</item>
<item row="16" column="0">
<widget class="QCheckBox" name="checkBox16">
<property name="text">
<string>16</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>发布于 2017-01-10 18:48:13
这可以使用QObject::findChildren方法来完成。
属于.ui文件的.cpp文件中的示例代码如下所示:
QList<QCheckBox *> allCheckBoxes = this->findChildren<QCheckBox *>();
for (QCheckBox *checkBox: allCheckBoxes) {
if (checkBox->isChecked()) {
qDebug() << "CheckBox with object name " << checkBox->objectName() << " is checked";
}
}https://stackoverflow.com/questions/41566391
复制相似问题