mirror of
https://github.com/zhuzichu520/FluentUI.git
synced 2025-07-04 00:55:30 +08:00
update
This commit is contained in:
@ -33,14 +33,14 @@ void FluApp::run(){
|
||||
navigate(initialRoute());
|
||||
}
|
||||
|
||||
void FluApp::navigate(const QString& route){
|
||||
void FluApp::navigate(const QString& route,const QJsonObject& argument){
|
||||
if(!routes().contains(route)){
|
||||
qErrnoWarning("没有找到当前路由");
|
||||
return;
|
||||
}
|
||||
bool isAppWindow = route == initialRoute();
|
||||
FramelessView *view = new FramelessView();
|
||||
|
||||
view->setProperty("argument",argument);
|
||||
QMapIterator<QString, QVariant> iterator(properties);
|
||||
while (iterator.hasNext()) {
|
||||
iterator.next();
|
||||
@ -59,7 +59,7 @@ void FluApp::navigate(const QString& route){
|
||||
view->setSource((routes().value(route).toString()));
|
||||
if(isAppWindow){
|
||||
QObject::connect(view->engine(), &QQmlEngine::quit, qApp, &QCoreApplication::quit);
|
||||
// QObject::connect(qApp, &QGuiApplication::aboutToQuit, qApp, [&view](){view->setSource({});});
|
||||
// QObject::connect(qApp, &QGuiApplication::aboutToQuit, qApp, [&view](){view->setSource({});});
|
||||
}else{
|
||||
view->closeDeleteLater();
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
|
||||
Q_INVOKABLE void run();
|
||||
|
||||
Q_INVOKABLE void navigate(const QString& route);
|
||||
Q_INVOKABLE void navigate(const QString& route,const QJsonObject& argument = {});
|
||||
|
||||
Q_INVOKABLE void init(QWindow *window,QMap<QString, QVariant> properties);
|
||||
|
||||
|
@ -10,9 +10,9 @@ void WindowHelper::setTitle(const QString& text){
|
||||
window->setTitle(text);
|
||||
}
|
||||
|
||||
|
||||
void WindowHelper::initWindow(FramelessView* window){
|
||||
QJsonObject WindowHelper::initWindow(FramelessView* window){
|
||||
this->window = window;
|
||||
return window->property("argument").toJsonObject();
|
||||
}
|
||||
|
||||
void WindowHelper::setMinimumWidth(int width){
|
||||
@ -27,3 +27,19 @@ void WindowHelper::setMinimumHeight(int height){
|
||||
void WindowHelper::setMaximumHeight(int height){
|
||||
this->window->setMaximumHeight(height);
|
||||
}
|
||||
void WindowHelper::updateWindow(){
|
||||
this->window->setFlag(Qt::Window,false);
|
||||
this->window->setFlag(Qt::Window,true);
|
||||
}
|
||||
|
||||
void WindowHelper::setModality(int type){
|
||||
if(type == 0){
|
||||
this->window->setModality(Qt::NonModal);
|
||||
}else if(type == 1){
|
||||
this->window->setModality(Qt::WindowModal);
|
||||
}else if(type == 2){
|
||||
this->window->setModality(Qt::ApplicationModal);
|
||||
}else{
|
||||
this->window->setModality(Qt::NonModal);
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <QQuickWindow>
|
||||
#include <QQuickItem>
|
||||
#include <QWindow>
|
||||
#include <QJsonObject>
|
||||
#include "FramelessView.h"
|
||||
|
||||
class WindowHelper : public QObject
|
||||
@ -14,12 +15,14 @@ class WindowHelper : public QObject
|
||||
public:
|
||||
explicit WindowHelper(QObject *parent = nullptr);
|
||||
|
||||
Q_INVOKABLE void initWindow(FramelessView* window);
|
||||
Q_INVOKABLE QJsonObject initWindow(FramelessView* window);
|
||||
Q_INVOKABLE void setTitle(const QString& text);
|
||||
Q_INVOKABLE void setMinimumWidth(int width);
|
||||
Q_INVOKABLE void setMaximumWidth(int width);
|
||||
Q_INVOKABLE void setMinimumHeight(int height);
|
||||
Q_INVOKABLE void setMaximumHeight(int height);
|
||||
Q_INVOKABLE void updateWindow();
|
||||
Q_INVOKABLE void setModality(int type);
|
||||
|
||||
private:
|
||||
FramelessView* window;
|
||||
|
@ -7,7 +7,7 @@ TextField{
|
||||
property var values:[]
|
||||
property int fontStyle: FluText.Body
|
||||
property int pixelSize : FluTheme.textSize
|
||||
property int iconSource: -1
|
||||
property int iconSource: 0
|
||||
signal itemClicked(string data)
|
||||
|
||||
id:input
|
||||
@ -112,7 +112,7 @@ TextField{
|
||||
iconSource: input.iconSource
|
||||
iconSize: 15
|
||||
opacity: 0.5
|
||||
visible: input.iconSource != -1
|
||||
visible: input.iconSource != 0
|
||||
anchors{
|
||||
verticalCenter: parent.verticalCenter
|
||||
right: parent.right
|
||||
|
@ -2,9 +2,9 @@
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Controls 2.15
|
||||
|
||||
Popup {
|
||||
Menu {
|
||||
id: popup
|
||||
default property alias content: container.children
|
||||
default property alias content: container.data
|
||||
|
||||
background: Rectangle {
|
||||
implicitWidth: 140
|
||||
|
@ -26,6 +26,9 @@ Item {
|
||||
property int maximumWidth
|
||||
property int minimumHeight
|
||||
property int maximumHeight
|
||||
property int modality:0
|
||||
|
||||
signal initArgument(var argument)
|
||||
|
||||
property int borderless:{
|
||||
if(!FluTheme.isFrameless){
|
||||
@ -76,8 +79,8 @@ Item {
|
||||
target: FluApp
|
||||
function onWindowReady(view){
|
||||
if(FluApp.equalsWindow(view,window)){
|
||||
helper.initWindow(view);
|
||||
helper.setTitle(title);
|
||||
initArgument(helper.initWindow(view))
|
||||
helper.setTitle(title)
|
||||
if(minimumWidth){
|
||||
helper.setMinimumWidth(minimumWidth)
|
||||
}
|
||||
@ -90,6 +93,8 @@ Item {
|
||||
if(maximumHeight){
|
||||
helper.setMaximumHeight(maximumHeight)
|
||||
}
|
||||
helper.setModality(root.modality);
|
||||
helper.updateWindow()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -119,4 +124,8 @@ Item {
|
||||
window.close()
|
||||
}
|
||||
|
||||
function onResult(data){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user