QML 窗口最小宽度

Ste*_*ano 3 qt text qt4 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();
}
Run Code Online (Sandbox Code Playgroud)

W.B*_*.B. 5

我不知道,您使用的是哪个版本的 QML,但是如果您可以使用 QtQuick 2,那么您可以ApplicationWindow像这样在 QML 中设置为顶级项目:

import QtQuick 2.0

ApplicationWindow {
    id: appWnd
    minimumWidth: 300
    minimumHeight: 300
}
Run Code Online (Sandbox Code Playgroud)

您还可以看看implicitWidthimplicitHeight性能为每个特定的QML类型,并设置appWnd最小宽度/高度是implicitWidth /含布局的高度。例如:

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" }
    }

}
Run Code Online (Sandbox Code Playgroud)

这不会让应用程序窗口的缩放比例小于它包含的控件(因为隐式布局的宽度和高度等于所包含项目的隐式宽度和高度的总和)。

您还可以使用 绑定到布局的绝对最小宽度gridLayout.Layout.minimumWidth,如文档中所述