This commit is contained in:
朱子楚\zhuzi
2023-03-01 22:07:58 +08:00
9 changed files with 142 additions and 9 deletions

View File

@ -42,12 +42,23 @@ void FluApp::navigate(const QString& route){
}
bool isAppWindow = route==initialRoute();
FramelessView *view = new FramelessView();
view->setProperty("winId","1234243");
qDebug()<<"-----FramelessView--------->";
// view->setWidth(800);
// view->setHeight(500);
// view->setMaximumSize(QSize(800,500));
// view->setMinimumSize(QSize(800,500));
view->setColor(isDark() ? QColor(0,0,0,1) : QColor(255, 255, 255, 1));
QObject::connect(view, &QQuickView::statusChanged, view, [&](QQuickView::Status status) {
qDebug()<<"-------------->";
if (status == QQuickView::Status::Ready) {
Q_EMIT windowReady(view);
view->moveToScreenCenter();
view->show();
}
});
qDebug()<<"-----view->setSource((routes().value(route).toString()))--------->";
view->setSource((routes().value(route).toString()));
if(isAppWindow){
QObject::connect(view->engine(), &QQmlEngine::quit, qApp, &QCoreApplication::quit);
@ -55,10 +66,13 @@ void FluApp::navigate(const QString& route){
}else{
view->closeDeleteLater();
}
view->moveToScreenCenter();
view->show();
}
bool FluApp::equalsWindow(FramelessView *view,QWindow *window){
qDebug()<<"-----equalsWindow--------->";
view->setWidth(800);
view->setHeight(500);
view->setMaximumSize(QSize(800,500));
view->setMinimumSize(QSize(800,500));
return view->winId() == window->winId();
}

View File

@ -118,7 +118,8 @@ public:
if (oldStyle != newStyle)
{
borderless = enabled;
::SetWindowLongPtrW(handle, GWL_STYLE, static_cast<LONG>(newStyle));
//todo 有待研究这个
// ::SetWindowLongPtrW(handle, GWL_STYLE, static_cast<LONG>(newStyle));
// when switching between borderless and windowed, restore appropriate shadow state
setShadow(handle, borderless_shadow && (newStyle != Style::windowed));

View File

@ -21,3 +21,7 @@ void WindowHelper::setMinimumSize(const QSize &size){
void WindowHelper::setMaximumSize(const QSize &size){
this->window->setMaximumSize(size);
}
void WindowHelper::setSize(const QSize &size){
}

View File

@ -18,6 +18,7 @@ public:
Q_INVOKABLE void setTitle(const QString& text);
Q_INVOKABLE void setMinimumSize(const QSize &size);
Q_INVOKABLE void setMaximumSize(const QSize &size);
Q_INVOKABLE void setSize(const QSize &size);
private:
FramelessView* window;

View File

@ -12,6 +12,9 @@ Rectangle {
return Window.Maximized === Window.window.visibility
}
property string title: "FluentUI"
property string winId
property var minimumSize
property var maximumSize
@ -40,7 +43,7 @@ Rectangle {
color : FluApp.isDark ? "#202020" : "#F3F3F3"
Component.onCompleted: {
console.debug("onCompleted")
console.debug("Component.onCompleted:"+root.winId)
}
Connections{
@ -55,6 +58,11 @@ Rectangle {
if(maximumSize){
helper.setMaximumSize(maximumSize)
}
if(maximumSize&&minimumSize){
if(maximumSize.width === minimumSize.width && maximumSize.height === minimumSize.height){
helper.disResizable()
}
}
}
}
}
@ -68,7 +76,6 @@ Rectangle {
root: root
}
function showSuccess(text,duration,moremsg){
infoBar.showSuccess(text,duration,moremsg);
}
@ -81,7 +88,8 @@ Rectangle {
function showError(text,duration,moremsg){
infoBar.showError(text,duration,moremsg);
}
function close(){
window.close()
}
}