Qt快速无边框窗口未重新绘制
我尝试创建一个简单的应用程序,用户需要在其中输入日期。为此,我想连接一个带有日历弹出窗口的按钮。只要弹出窗口是它自己的窗口并且有边框,这就可以正常工作。但当我让窗户无边界的那一刻,它似乎不再被画了。实际上,如果移动参考底图窗口,您会看到带有日历小部件的区域保持未绘制状态Qt快速无边框窗口未重新绘制,qt,popup,qml,redraw,Qt,Popup,Qml,Redraw,我尝试创建一个简单的应用程序,用户需要在其中输入日期。为此,我想连接一个带有日历弹出窗口的按钮。只要弹出窗口是它自己的窗口并且有边框,这就可以正常工作。但当我让窗户无边界的那一刻,它似乎不再被画了。实际上,如果移动参考底图窗口,您会看到带有日历小部件的区域保持未绘制状态 import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Layouts 1.1 import QtQuick.Window 2.1 ApplicationWi
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
ApplicationWindow {
width: 800
height: 600
property var pos : getOffset(dateField)
Button {
id: dateField
width: 100
height: 50
anchors.centerIn: parent
text: "show widget"
onClicked:{ toggleModal() }
}
function getOffset(item) {
var offset = {
"x": item.x,
"y": item.y + item.height
};
while(item.parent) {
item = item.parent;
offset.x += item.x;
offset.y += item.y;
}
console.debug("total", "x", offset.x, "y", offset.y)
return offset;
}
function toggleModal() {
if(modal.active) {
console.log("hide calendar")
loseFocus();
}
else {
console.log("show calendar")
modal.show()
modal.requestActivate()
}
}
function loseFocus(newDate) {
modal.close();
}
Window {
id: modal
flags: Qt.Window | Qt.FramelessWindowHint
//flags: Qt.Window
//modality: Qt.ApplicationModal
minimumHeight: calendar.height; minimumWidth: calendar.width
maximumHeight: calendar.height; maximumWidth: calendar.width
x: pos.x
y: pos.y
Calendar {
id: calendar
width: 200
height: 300
}
}
}