2017-06-15 1 views
1

Je veux mettre ma mise en page de démonstration est de droite à gauche, et je mis cela dans la fonction principale, comme ceci:pourquoi setLayoutDirection ne fonctionne pas dans ma démo Quick Qt?

int main(int argc, char *argv[]) 
{ 
    QGuiApplication app(argc, argv); 
    QQmlApplicationEngine engine; 
    engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 
    app.setLayoutDirection(Qt::RightToLeft) 
    return app.exec(); 
} 

Voici mon fichier QML:

import QtQuick 2.6 
import QtQuick.Window 2.2 

Window { 
    visible: true 
    width: 640 
    height: 480 
    id:root 
    Row { 
     spacing: 20 
     Repeater { 
      model: 5 
      Rectangle { 
       color: "red" 
       opacity: (5 - index)/5 
       width: 70; height: 30 

       Text { 
        text: index + 1+" hello" 
        width:parent.width 
       } 
      } 
     } 
    } 
} 

Toutefois, le résultat de la mise en page encore est de gauche à droite: enter image description here

Comment puis-je obtenir la véritable mise en page RTL, tous les composants sont de droite à gauche, comprennent le texte, comme ceci: enter image description here

Répondre

0

Right-to-left User Interfaces indique que vous devez utiliser les propriétés attachées LayoutMirroring. Prenant l'exemple de cette page:

import QtQuick 2.0 

Rectangle { 
    LayoutMirroring.enabled: true 
    LayoutMirroring.childrenInherit: true 

    width: 300; height: 50 
    color: "yellow" 
    border.width: 1 

    Row { 
     anchors { left: parent.left; margins: 5 } 
     y: 5; spacing: 5 

     Repeater { 
      model: 5 

      Rectangle { 
       color: "red" 
       opacity: (5 - index)/5 
       width: 40; height: 40 

       Text { 
        text: index + 1 
        anchors.centerIn: parent 
       } 
      } 
     } 
    } 
} 
+0

la LayoutMirroring n'existe pas dans le rectangle, mais pas dans la fenêtre ...... – AdvancingEnemy

+0

Vous pouvez le mettre à peu près partout, je pense. Dans votre cas, mettez simplement ces deux lignes en dessous de 'id: root'. – Mitch

+0

Obtenez-le! Merci mon ami. btw pourquoi LayoutMirroring ne fonctionne pas dans Slider? – AdvancingEnemy