QML 窗口最小宽度
Posted
技术标签:
【中文标题】QML 窗口最小宽度【英文标题】:QML Window min-width 【发布时间】:2012-06-01 06:39:09 【问题描述】:我正在使用 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();
【问题讨论】:
【参考方案1】:我不知道您使用的是哪个版本的 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"
这不会让应用程序窗口缩放小于它包含的控件(因为隐式布局的宽度和高度等于所包含项目的隐式宽度和高度的总和)。
您还可以使用gridLayout.Layout.minimumWidth
绑定到布局的绝对最小宽度,如in the docs 所述。
【讨论】:
在撰写本文时还没有 ApplicationWindow 组件,但现在您的回复是正确的 @Stefano,对,我没看问的年份,只看月份:(【参考方案2】:view.setMinimumSize(QSize(min-width,min-height));
【讨论】:
谢谢它的工作。只是一个问题:没有一种方法可以在 QML 文件中设置它吗?我认为那里会更合适,因为它是与图形相关的东西 我没用过qml。但是肯定会有属性 minimumsize 可以在 qml 文件中设置。以上是关于QML 窗口最小宽度的主要内容,如果未能解决你的问题,请参考以下文章