Qt QML窗口最小宽度
我正在用QML和下面的代码创建一个窗口。如何设置窗口的最小宽度,使其大小不能小于定义的值Qt QML窗口最小宽度,qt,text,qt4,qml,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/ma
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();
}
我不知道您使用的是哪个版本的QML,但是如果您可以使用QtQuick 2,那么您可以将
ApplicationWindow
设置为QML中的顶级项,如下所示:
import QtQuick 2.0
ApplicationWindow {
id: appWnd
minimumWidth: 300
minimumHeight: 300
}
您还可以查看每个特定QML类型的implicitWidth
和implicitHeight
属性,并将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" }
}
}
这不会使应用程序窗口的比例小于其包含的控件(因为隐式布局的宽度和高度等于包含的项目的总和隐式宽度和高度)
您还可以使用
gridLayout.layout.minimumWidth
绑定到版面的绝对最小宽度,如前所述。谢谢,它可以工作。只是一个问题:在QML文件中没有设置它的方法吗?我认为这更合适,因为这是一个与图形相关的东西,我没有使用qml。但是可以肯定的是,qml文件中会有可以设置的属性minimumsize。在撰写本文时,没有ApplicationWindow组件,但是现在您的回答是正确的one@Stefano,是的,我没有看那一年的提问,只有一个月:(
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" }
}
}