Пример #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);
}
Пример #2
0
int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    Window *view = new Window();
    QWidget *container = QWidget::createWindowContainer(view);
    QSize screenSize = view->screen()->size();
    container->setMinimumSize(QSize(200, 100));
    container->setMaximumSize(screenSize);

    QWidget *widget = new QWidget;
    QHBoxLayout *hLayout = new QHBoxLayout(widget);
    QVBoxLayout *vLayout = new QVBoxLayout();
    vLayout->setAlignment(Qt::AlignTop);
    hLayout->addWidget(container, 1);
    hLayout->addLayout(vLayout);

    widget->setWindowTitle(QStringLiteral("Basic shapes"));

    Qt3DCore::QAspectEngine engine;
    engine.registerAspect(new Qt3DRender::QRenderAspect());
    Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
    engine.registerAspect(input);
    QVariantMap data;
    data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(view)));
    data.insert(QStringLiteral("eventSource"), QVariant::fromValue(view));
    engine.setData(data);

    // Root entity
    Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity();

    // Camera
    Qt3DCore::QCamera *cameraEntity = new Qt3DCore::QCamera(rootEntity);
    cameraEntity->setObjectName(QStringLiteral("cameraEntity"));

    cameraEntity->lens()->setPerspectiveProjection(45.0f, 16.0f/9.0f, 0.1f, 1000.0f);
    cameraEntity->setPosition(QVector3D(0, 0, -20.0f));
    cameraEntity->setUpVector(QVector3D(0, 1, 0));
    cameraEntity->setViewCenter(QVector3D(0, 0, 0));
    input->setCamera(cameraEntity);

    // FrameGraph
    Qt3DRender::QFrameGraph *frameGraph = new Qt3DRender::QFrameGraph();
    Qt3DRender::QForwardRenderer *forwardRenderer = new Qt3DRender::QForwardRenderer();

    forwardRenderer->setCamera(cameraEntity);
    forwardRenderer->setClearColor(QColor(QRgb(0x4d4d4f)));
    frameGraph->setActiveFrameGraph(forwardRenderer);

    // Setting the FrameGraph
    rootEntity->addComponent(frameGraph);

    // Scenemodifier
    SceneModifier *modifier = new SceneModifier(rootEntity);

    // Set root object of the scene
    engine.setRootEntity(rootEntity);

    // Create control widgets
    QCommandLinkButton *info = new QCommandLinkButton();
    info->setText(QStringLiteral("Qt3D ready-made meshes"));
    info->setDescription(QStringLiteral("Qt3D provides several ready-made meshes, like torus, cylinder, cube and sphere."));
    info->setIconSize(QSize(0,0));

    QCheckBox *torusCB = new QCheckBox(widget);
    torusCB->setChecked(true);
    torusCB->setText(QStringLiteral("Torus"));

    QCheckBox *cylinderCB = new QCheckBox(widget);
    cylinderCB->setChecked(true);
    cylinderCB->setText(QStringLiteral("Cylinder"));

    QCheckBox *cuboidCB = new QCheckBox(widget);
    cuboidCB->setChecked(true);
    cuboidCB->setText(QStringLiteral("Cuboid"));

    QCheckBox *sphereCB = new QCheckBox(widget);
    sphereCB->setChecked(true);
    sphereCB->setText(QStringLiteral("Sphere"));

    vLayout->addWidget(info);
    vLayout->addWidget(torusCB);
    vLayout->addWidget(cylinderCB);
    vLayout->addWidget(cuboidCB);
    vLayout->addWidget(sphereCB);

    QObject::connect(torusCB, &QCheckBox::stateChanged,
                     modifier, &SceneModifier::enableTorus);
    QObject::connect(cylinderCB, &QCheckBox::stateChanged,
                     modifier, &SceneModifier::enableCylinder);
    QObject::connect(cuboidCB, &QCheckBox::stateChanged,
                     modifier, &SceneModifier::enableCuboid);
    QObject::connect(sphereCB, &QCheckBox::stateChanged,
                     modifier, &SceneModifier::enableSphere);

    torusCB->setChecked(true);
    cylinderCB->setChecked(true);
    cuboidCB->setChecked(true);
    sphereCB->setChecked(true);

    // Show window
    widget->show();
    widget->resize(1200, 800);

    // Update the aspect ratio
    QSize widgetSize =  container->size();
    float aspectRatio = float(widgetSize.width()) / float(widgetSize.height());
    cameraEntity->lens()->setPerspectiveProjection(45.0f, aspectRatio, 0.1f, 1000.0f);

    return app.exec();
}