2015-03-26 14 views
5

Voglio impostare la dimensione minima per la mia finestra QML. Ma se imposto la larghezza e l'altezza minime all'interno del mio main.qml ho la finestra che ha una dimensione minima maggiore di quella che ho impostato & expect. Il problema è che la dimensione minima viene applicata alla vista all'interno della cornice della finestra e la dimensione della cornice e della didascalia della finestra non viene presa in considerazione.Dimensione minima finestra QML con cornice

ApplicationWindow { 
 
    id: application 
 
    minimumWidth: 1024 
 
    minimumHeight: 768 
 
    visibility: "Maximized" 
 
}

C'è un modo per impostare finestra dell'applicazione dimensione minima tenendo telaio della finestra account?

Io uso Qt 5.4.

risposta

2

come @luke_carter già detto, è possibile chiamando uno della funzione di QFrame legati alle sue dimensioni, ad esempio QFrame::frameGeometry() .E si ottiene la dimensione della finestra compreso telaio e barra del titolo. Quindi tutto ciò di cui hai bisogno è di regolare la dimensione della finestra di QML. Penso che il modo migliore per farlo che con un Singleton con funzioni adatte, ad esempio:

QRect MySingleton::frameSize(QObject *window) 
{ 
    QQuickWindow *qw = qobject_cast<QQuickWindow *>(window); 
    if(qw) 
     return qw->frameGeometry(); 
    return QRect(); 
} 

In QML:

Window { 
    id: wnd 
    visible: true 
    width: 300 
    height: 300 
    Component.onCompleted: { 
     var rect = MySingleton.frameSize(wnd); 
     console.log(rect.width + "," + rect.height); 
    } 
} 
2

Forse nascondere il frame utilizzando Qt::FramelessWindowHint (o -frameless se si utilizza il visualizzatore qml)? Suppongo che sia perché la cornice fa parte del sistema di finestre del sistema operativo.

Appena trovato this, potrebbe essere possibile ottenere la dimensione della cornice dal sistema operativo di destinazione.

Problemi correlati