Пример #1
0
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);
}