2012-06-01 292 views
2

我創建與QML一個窗口和下面的代碼。我怎樣才能爲窗口設置最小寬度,以便我無法調整小於我定義的值的大小?QML窗口最小寬度

Rectangle { 
    color: red; 
    width: 300 
    height: 100 
} 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QDeclarativeView view; 

    view.setSource(QUrl::fromLocalFile("QML/main.qml")); 
    view.setResizeMode(QDeclarativeView::SizeRootObjectToView); 
    view.show(); 

    return app.exec(); 
} 

回答

2
view.setMinimumSize(QSize(min-width,min-height)); 
+0

謝謝它的作品。只是一個問題:是不是有一種方法將其設置在QML文件中?我認爲這會更合適,因爲它是一個圖形相關的東西 – Stefano

+0

我沒有使用qml。但肯定會有屬性minimumsize,可以在qml文件中設置。 – ScarCode

2

我不知道,你正在使用的QML的版本,但如果你能憂色QtQuick 2,那麼你就設置ApplicationWindow在QML您的頂層項目是這樣的:

import QtQuick 2.0 

ApplicationWindow { 
    id: appWnd 
    minimumWidth: 300 
    minimumHeight: 300 
} 

您還可以查看每個特定QML類型的implicitWidthimplicitHeight屬性,並設置minimumWidth/Height爲隱含的寬度/包含佈局的高度。例如:

import QtQuick 2.0 
import QtQuick.Layouts 1.0 
import QtQuick.Controls 1.0 

ApplicationWindow 
{ 
    minimumWidth: gridLayout.implicitWidth 
    minimumHeight: gridLayout.implicitHeight 
    height: 500 
    width: 500 

    color: "gold" 

    GridLayout { 
     id: gridLayout 
     anchors.centerIn: parent 
     columns: 2 

     Button {text: "Push me" } 
     Button {text: "Push me" } 
     Button {text: "Push me" } 
     Button {text: "Push me" } 
     Button {text: "Push me" } 
     Button {text: "Push me" } 
    } 

} 

這樣就不會讓該應用窗口規模比它所包含的控件小於(如隱式佈局的寬度和高度等於包含項隱含的寬度和高度的總和)。

您還可以使用gridLayout.Layout.minimumWidth綁定到佈局的絕對最小寬度,如in the docs所述。

+0

在寫這篇文章的時候沒有ApplicationWindow組件,但是現在你的回覆是正確的 – Stefano

+0

@Stefano,對,我沒有看問年,只是一個月:( –