QPushButton a dupliqué le texte après la mise à jour Qt

J'ai une application Android écrite en C ++ en utilisant Qt Creator.

Après la mise à jour de la version Qt (de 4,8 à 5,4 ), j'ai observé un comportement étrange: tous QPushButton ont une étiquette de texte dupliquée, l'un est à la position correcte et l'autre est déplacé un peu. Ce comportement peut être observé sur Acer Iconia Tab A700 mais pas sur un autre appareil (Samsung Galaxy Tab).

  • Le widget de recherche sur la barre d'action ne déclenche pas mon activité de recherche
  • InApp Billing: java.lang.SecurityException Nécessite READ_PHONE_STATE
  • Android: la sécurité est une base de données remplie d'application
  • GetWidth () et getHeight () renvoient toujours 0. Vue personnalisée
  • Quel est le problème avec Android SoundPool? Quelle alternative utiliser?
  • Convertir la chaîne base64 en image en Java
  • Illustration du problème

    J'ai créé un tout nouveau menu QDialog dans QT Creator, en utilisant uniquement l'éditeur graphique, mais il a montré la même chose.

    Est-ce que quelqu'un d'autre a observé la même chose? Je suis tout à fait nouveau dans Qt, et je ne sais pas comment réparer ça …

    MODIFIER

    Voici quelques extraits:

    Mydialog.ui

    <widget class="QPushButton" name="startButton"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>Start</string> </property> <property name="default"> <bool>true</bool> </property> </widget> 

    Ui_mydialog.h

     public: QPushButton *startButton; QPushButton *stopButton; ... void setupUi(QDialog *MyDialog) { ... // some layout stuff here startButton = new QPushButton(MyDialog); startButton->setObjectName(QStringLiteral("startButton")); QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); sizePolicy.setHeightForWidth(startButton->sizePolicy().hasHeightForWidth()); startButton->setSizePolicy(sizePolicy); startButton->setDefault(true); ... // later QWidget::setTabOrder(startButton, stopButton); } void retranslateUi(QDialog *MyDialog) { MyDialog->setWindowTitle(QApplication::translate("MyDialog", "Dialog", 0)); startButton->setText(QApplication::translate("MyDialog", "Start", 0)); stopButton->setText(QApplication::translate("MyDialog", "Stop", 0)); ... } 

    Mais encore une fois, j'ai utilisé la GUI Qt Creator pour créer la boîte de dialogue, donc je suppose que cela devrait être une erreur de configuration. Ou peut-être quelque chose lié à la fonction retranslateUi() ?

    Voici comment il regarde dans Qt Creator:

    Entrez la description de l'image ici

    EDIT # 2

    J'ai creusé des instructions sur lesquelles le style concret des boutons était défini. C'est ici:

      foreach (QToolButton* bt, listOfToolButtons) { bt->setAttribute(Qt::WA_AcceptTouchEvents); bt->installEventFilter(scrollAreaForToolBar); bt->setIconSize(QSize(iconSize, iconSize)); bt->setStyleSheet("QToolButton{ background-color: #051a49; border: none;}"); scrollAreaContainer->layout()->addWidget(bt); } 

  • OnActivityResult () non appelé
  • Erreur: Votre projet contient des fichiers C ++, mais il n'utilise pas un système de construction natif pris en charge
  • Ouvrir une activité ou un fragment avec Bottom Sheet Deep Linking
  • Création d'un style par défaut avec des attributs personnalisés
  • Comportement des applications Android VOIP en mode Doze
  • Bitmap recycle avec wideHeap activé
  • 2 Solutions collect form web for “QPushButton a dupliqué le texte après la mise à jour Qt”

    J'ai le même problème, je l'ai résolu en configurant la feuille de style. Il semble que ce soit un problème avec la bordure, la feuille de style qui résout le problème est:

     border-style: outset; border-width: 2px; border-radius: 4px; border-color: black; padding: 6px; 

    J'ai essayé une configuration différente, mais je ne comprends pas quel est le vrai qui résout le problème.

    J'ai réussi quelques progrès!

    J'ai dû recréer tout le widget et cette fois, je lui ai donné un peu plus de taille. En utilisant simplement QtCreator, la mise à l'échelle du cadre principal du widget . Maintenant, l'étiquette de tous les boutons est correctement affichée. En outre, la politique de taille des éléments ui a été changée en Expanding .

    D'accord, je sais que ce n'est qu'un traitement et non une solution qui explique pourquoi il se produit, mais je suis heureux avec ce résultat maintenant.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.