我想为我的QML窗口设置最小尺寸.但是,如果我在main.qml中设置了最小宽度和高度,那么我的窗口大小比我设置和期望的大.问题是最小尺寸应用于窗框内的视图,并且不考虑窗框和标题尺寸.
ApplicationWindow {
id: application
minimumWidth: 1024
minimumHeight: 768
visibility: "Maximized"
}Run Code Online (Sandbox Code Playgroud)
有没有办法设置应用程序窗口最小尺寸考虑到窗口框架?
我使用Qt 5.4.
正如@luke_carter已经说过的,可以通过调用与其大小相关的 QFrame 函数之一,例如QFrame::frameGeometry()。它可以获取窗口大小,包括框架和标题栏。因此,您所需要做的就是调整 QML 窗口大小。我认为最好的方法是使用具有合适功能的单例来做到这一点,例如:
QRect MySingleton::frameSize(QObject *window)
{
QQuickWindow *qw = qobject_cast<QQuickWindow *>(window);
if(qw)
return qw->frameGeometry();
return QRect();
}
Run Code Online (Sandbox Code Playgroud)
在 QML 中:
Window {
id: wnd
visible: true
width: 300
height: 300
Component.onCompleted: {
var rect = MySingleton.frameSize(wnd);
console.log(rect.width + "," + rect.height);
}
}
Run Code Online (Sandbox Code Playgroud)