2012-06-01 209 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,对,我没有看问年,只是一个月:( –