参考一下下面的代码:
QSqlQuery q;
q.exec("SELECT moduleid, title, titleshort FROM module");
while (q.next())
{
QWidget *widget = new QWidget;
QVBoxLayout *layout = new QVBoxLayout;
layout->setSpacing(1);
layout->setMargin(1);
QSqlQuery q2;
q2.exec("SELECT title, titleshort, functype, funcid FROM modulefunc WHERE moduleid = '" + q.value(0).toString() + "'");
while (q2.next())
{
FuncToolButton *button = new FuncToolButton(q.value(0).toString(), q2.value(2).toInt(), q2.value(3).toInt());
button->setAutoRaise(true);
button->setIcon(QIcon("../img/ex1.png"));
button->setIconSize(QSize(48, 48));
button->setText(q2.value(0).toString());
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
connect(button, SIGNAL(clicked(QString, int, int, QString)), this, SLOT(on_actionAct_triggered(QString, int, int, QString)));
layout->addWidget(button);
}
q2.clear();
layout->addItem(new QSpacerItem(toolBox->width(), toolBox->height(), QSizePolicy::Minimum, QSizePolicy::Expanding));
widget->setLayout(layout);
toolBox->addItem(widget, QIcon("../img/ex1.png"), QString("%1").arg(q.value(1).toString()));
}
q.clear();