我正在使用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();
}
答案 0 :(得分:3)
view.setMinimumSize(QSize(min-width,min-height));
答案 1 :(得分:2)
我不知道你正在使用哪个版本的QML,但如果你能使用QtQuick 2,那么你可以将ApplicationWindow
设置为QML中的顶级项目,如下所示:
import QtQuick 2.0
ApplicationWindow {
id: appWnd
minimumWidth: 300
minimumHeight: 300
}
您还可以查看每种特定QML类型的implicitWidth
和implicitHeight
属性,并将appWnd
minimumWidth / Height设置为包含布局的implicitWidth / 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" }
}
}
这不会让app窗口缩小比它包含的控件小(因为隐式布局的宽度和高度等于包含的项隐式宽度和高度的总和)。
您还可以使用gridLayout.Layout.minimumWidth
绑定到布局的绝对最小宽度,如in the docs所述。