void MainWindow::createMenus(int parentMenu) { if ( ui->scrollAreaWidgetContents->layout() != NULL ) // очистка кнопок { QLayoutItem* item; while ((item = ui->scrollAreaWidgetContents->layout()->takeAt(0) ) != NULL ) { delete item->widget(); delete item; } delete ui->scrollAreaWidgetContents->layout(); } if (! dal_main->checkConnection()) { QMessageBox::warning(this, tr("Ошибка соединения"), tr("Соединение не установлено")); return; } QSqlQuery *query = new QSqlQuery("SELECT * FROM is_menus WHERE menu_parent = " + QString::number(parentMenu), dal_main->db); query->exec(); query->first(); // qDebug()<<query->lastError()<<query->size(); ui->groupBox->setVisible(true); ui->scrollArea->setMinimumSize(900, 400); // ui->scrollArea->setMaximumSize(800, 500); // ui->groupBox_menu->setMinimumSize(800, 1000); QGridLayout *menuLayout = new QGridLayout(ui->scrollAreaWidgetContents); ui->scrollAreaWidgetContents->setLayout(menuLayout); int row = 0; int column = 0; // QList<QCommandLinkButton*> list; // QSequentialAnimationGroup *anim = new QSequentialAnimationGroup; for (int i = 0; i < query->size(); ++i) { QCommandLinkButton* mbtn = new QCommandLinkButton(query->value(1).toString()); // QPushButton* mbtn = new QPushButton(query->value(1).toString()); mbtn->setText(query->value(1).toString()); mbtn->setMinimumSize(265,70); mbtn->setMaximumSize(265,70); mbtn->setIcon(QIcon(":/img/img/" + query->value(2).toString())); mbtn->setIconSize(QSize(30,60)); mbtn->setToolTip(query->value(5).toString()); QGraphicsDropShadowEffect * ef = new QGraphicsDropShadowEffect; // эффект тени ef->setBlurRadius(20); mbtn->setGraphicsEffect(ef); connect(mbtn,SIGNAL(clicked()),SLOT(menuClick())); // QGraphicsOpacityEffect* fade_effect = new QGraphicsOpacityEffect(mbtn); // mbtn->setGraphicsEffect(fade_effect); // QPropertyAnimation *animation = new QPropertyAnimation(fade_effect, "opacity"); // animation->setEasingCurve(QEasingCurve::InOutQuad); // animation->setDuration(100); // animation->setStartValue(0.01); // animation->setEndValue(1.0); // anim->addAnimation(animation); menuLayout->addWidget(mbtn,row,column); if(column<2) column++; else { column = 0; row++; } query->next(); } // anim->start(); // *555-050-* // *909-0-* ui->frame->setVisible(false); }