Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.8.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Problème de widget qui se redimensionne

Salut à tous, et me voici déjà de retour avec un nouveau problème, de taille :D

J'ai 2 widgets, designés pour prendre exactement l'écran, avec une taille "fixed". Je lui applique une anim affectant UNIQUEMENT la propriété "pos", et en le faisant revenir à sa position initiale, une partie du widget a disparu, et il a été... Redimensionné. Résultat: j'ai une partie de mes widgets qui disparaît UNIQUEMENT après l'animation, et qui ne revient pas... Je serais vraiment ravi que vous m'apportiez une solution à ce pépin, ou au moins des pistes.

Cordialement,

Nihilivin

Réponses

  • Bonsoir !
    Nihilivin said:
    J'ai 2 widgets, [...] Je lui applique [...] une partie du widget a disparu, et il a été
    Question simple : pourrais-tu faire des phrases cohérentes entre elles, s'il te plaît ? tu pars de 2 widgets, puis il n'y en a plus qu'un qui te fait des misères, puis tu reviens sur le pluriel, "une partie de mes widgets".

    Je pense en outre que le code de ton animation serait utile.
  • Oui, désolé, pour éclaircir le premier post, les 2 widgets s'empile, avec un seul prennant tout l'écran, et j'anime les deux de façon à ce qu'ils "se chassent". C'est de celui qui rentre dans le champs dont je parle par la suite. Mais le problème se répète sur les 2, CàD que si j'en bouge un (n'importe lequel) pour qu'il revienne à la position (0,0) (CàD pour qu'il reprenne toute la place de l'écran), un morceau disparait..

    Voici le code:

    //"windows" est la liste des écrans, donc widgets, disponibles
    //"step" désigne l'index de l'écran qui est présent et qui sort
    //"target" désigne l'index de l'écran qui est hors champs et rentre
    //"currentAnim" est l'animation appliquée au widget présent
    //"otherAnim" est l'animation appliquée au widget entrant

    QPoint origin(windows[step]->geometry().x(), -windows[step]->geometry().height());
    currentAnim->setTargetObject(windows[step]);
    currentAnim->setStartValue(QPoint(0,0));
    currentAnim->setEndValue(origin);

    QPoint destination(windows[target]->geometry().x(), windows[target]->geometry().height());
    otherAnim->setTargetObject(windows[target]);
    otherAnim->setStartValue(destination);
    otherAnim->setEndValue(QPoint(0,0));
  • Bonjour,

    Désolé mais malgré tes "éclaircissements", certains points reste très... flou.

    "windows" est la liste des écrans, donc widgets, disponibles
    Si tu veux qu'on t'aide, tu dois parler la meme langue que nous. Tu ne peux pas montrer une souris et dire, "C'est una vache !" :)
    Donc dans le meme sens, un écran reste un écran (physique). Sinon on va chercher des nuances partout en ce demandant ce que tu veux dire reelement.

    Qu'est ce que tu appel des champs ?

    On peux voir un screen ?
    On peux avoir le contenu xml de tes .ui ?

    Et je ne garanti meme pas pouvoir t'aider quand j'aurai tous ca ^^'
  • Salut,

    Désolé pour cette absence, j'ai finalement réglé le problème.

    Je prennais pour taille de base "QApplication::screens().at(0)". Mais cela ne prenait pas compte de la taille de la barre de statut en haut. Le code qui a marché jusqu'alors est le suivant:

    QSize m_screen = QApplication::screens().at(0).size();

    if((m_screen.height() >= 320 && m_screen.height() < 480) &&
    (m_screen.width() >= 240 && m_screen.width() < 320))
    m_screen.setHeight(m_screen.height() - 20);
    else if((m_screen.height() >= 480 && m_screen.height() < 800) &&
    (m_screen.width() >= 320 && m_screen.width() < 480))
    m_screen.setHeight(m_screen.height() - 25);
    else if((m_screen.height() >= 800) &&
    (m_screen.width() >= 480))
    m_screen.setHeight(m_screen.height() - 38);
    "

    Ainsi, la taille de la barre de statut est déduit de la taille de m_screen.
Connectez-vous ou Inscrivez-vous pour répondre.