zhuzichu520 / FluentUI

FluentUI for QML
MIT License
3.48k stars 456 forks source link

Qt6.3.2下,构建不通过 #371

Open blazewater-gmail opened 9 months ago

blazewater-gmail commented 9 months ago
  1. QStringLatin的问题 framelesshelpercore_global.h Line 161 - 167

    #ifndef FRAMELESSHELPER_STRING
    #  if (QT_VERSION >= QT_VERSION_CHECK(6, 4, 0))
    #    define FRAMELESSHELPER_STRING(str) str##_L1
    #  else
    #    define FRAMELESSHELPER_STRING(str) QLatin1String(str)
    #  endif
    #endif

    倒数第三行改为:# define FRAMELESSHELPER_STRING(str) QLatin1String(str, static_cast<int>(std::char_traits<char>::length(str)))后问题解决。

  2. 修订问题1后,出现如下问题: image 貌似是自动生成qml对应的源文件调用的函数参数出错

    const QMetaObject *r2;
    QObject *r2_1;
    // generate_LoadQmlContextPropertyLookup
    while (!aotContext->loadTypeLookup(102, &r2)) {
    aotContext->setInstructionPointer(2);
    aotContext->initLoadTypeLookup(102, QQmlPrivate::AOTCompiledContext::InvalidStringId);
    if (aotContext->engine->hasError())
    return QVariant();
    }
    {
    }
    // generate_GetLookup
    while (!aotContext->loadAttachedLookup(103, r2, &r2_1)) {
    aotContext->setInstructionPointer(4);
    aotContext->initLoadAttachedLookup(103, QQmlPrivate::AOTCompiledContext::InvalidStringId, r2);
    if (aotContext->engine->hasError())
    return QVariant();
    }
    {
    }

    声明是:

        bool loadAttachedLookup(uint index, QObject *object, void *target) const;
        void initLoadAttachedLookup(uint index, uint importNamespace, QObject *object) const;
zhuzichu520 commented 9 months ago

额,main分支已经删掉framelesshelper。打算实现一个简单的无边框。那个看起来很复杂,虽然不错。。

yanlusu commented 9 months ago

额,main分支已经删掉framelesshelper。打算实现一个简单的无边框。那个看起来很复杂,虽然不错。。

好主意,确实framelesshelper太复杂了。

yanlusu commented 9 months ago

试了下最新的删除framelesshelper的代码,在Qt6.3.2下编译依然会有同样的错误,貌似不是framelesshelper的问题? image

suterberg commented 9 months ago

试了下最新的删除framelesshelper的代码,在Qt6.3.2下编译依然会有同样的错误,貌似不是framelesshelper的问题? image

6.5是没问题的,是不是使用了6.3不支持的特性

yanlusu commented 9 months ago

试了下最新的删除framelesshelper的代码,在Qt6.3.2下编译依然会有同样的错误,貌似不是framelesshelper的问题? image

6.5是没问题的,是不是使用了6.3不支持的特性

不知道怎么定位问题。 目前看得出来的,应该是6.3.2的moc生成的qml对应的源文件用错api了,明显自动生成的cpp是有问题的。

suterberg commented 9 months ago

试了下最新的删除framelesshelper的代码,在Qt6.3.2下编译依然会有同样的错误,貌似不是framelesshelper的问题? image

6.5是没问题的,是不是使用了6.3不支持的特性

不知道怎么定位问题。 目前看得出来的,应该是6.3.2的moc生成的qml对应的源文件用错api了,明显自动生成的cpp是有问题的。

换qt6.5吧 可能函数实现有区别,不适用于6.3 我记得之前是用QVarient转换的后边改成QMateObject了,估计就是这方面问题

yanlusu commented 9 months ago

试了下最新的删除framelesshelper的代码,在Qt6.3.2下编译依然会有同样的错误,貌似不是framelesshelper的问题? image

6.5是没问题的,是不是使用了6.3不支持的特性

不知道怎么定位问题。 目前看得出来的,应该是6.3.2的moc生成的qml对应的源文件用错api了,明显自动生成的cpp是有问题的。

换qt6.5吧 可能函数实现有区别,不适用于6.3 我记得之前是用QVarient转换的后边改成QMateObject了,估计就是这方面问题

升版比较麻烦,不然不会问了😓,试过6.5没有问题。

suterberg commented 9 months ago

那就没招了,要么重写qml文件里边的逻辑,我估计是数据转换问题,得修改部分实现


---- 回复的原邮件 ----
发件人 ***@***.***>
日期 2023年12月20日 22:02
收件人 ***@***.***>
抄送至 ***@***.***>***@***.***>
主题 Re: [zhuzichu520/FluentUI] Qt6.3.2下,构建不通过 (Issue #371)

试了下最新的删除framelesshelper的代码,在Qt6.3.2下编译依然会有同样的错误,貌似不是framelesshelper的问题? image

6.5是没问题的,是不是使用了6.3不支持的特性

不知道怎么定位问题。 目前看得出来的,应该是6.3.2的moc生成的qml对应的源文件用错api了,明显自动生成的cpp是有问题的。

换qt6.5吧 可能函数实现有区别,不适用于6.3 我记得之前是用QVarient转换的后边改成QMateObject了,估计就是这方面问题

升版比较麻烦,不然不会问了😓,试过6.5没有问题。


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: <zhuzichu520/FluentUI/issues/371/1864526945@github.com>

yanlusu commented 8 months ago

解决了这个问题,Qt6.3.2下, 修改文件 Def.h, 把 GridView=0xf0e2, 改为: GridViews=0xf0e2,, 对应的ItemsOriginal.qml中的也改为GridViews即可。 就可以了。 不知道为什么,我是在 ItemsOriginal.qml中分段注释才发现下面这句话导致的问题:

    FluPaneItemExpander{
        title:Lang.form
        icon:FluentIcons.GridView   // 没看错,就是这句话导致编译出错。注释掉就可以编译通过。
        FluPaneItem{
            title:"TextBox"
            menuDelegate: paneItemMenu
            url:"qrc:/example/qml/page/T_TextBox.qml"
            onTap:{ navigationView.push(url) }
        }
        FluPaneItem{
            title:"TimePicker"
            menuDelegate: paneItemMenu
            url:"qrc:/example/qml/page/T_TimePicker.qml"
            onTap:{ navigationView.push(url) }
        }
        FluPaneItem{
            title:"DatePicker"
            menuDelegate: paneItemMenu
            url:"qrc:/example/qml/page/T_DatePicker.qml"
            onTap:{ navigationView.push(url) }
        }
        FluPaneItem{
            title:"CalendarPicker"
            menuDelegate: paneItemMenu
            url:"qrc:/example/qml/page/T_CalendarPicker.qml"
            onTap:{ navigationView.push(url) }
        }
        FluPaneItem{
            title:"ColorPicker"
            menuDelegate: paneItemMenu
            url:"qrc:/example/qml/page/T_ColorPicker.qml"
            onTap:{ navigationView.push(url) }
        }
        FluPaneItem{
            title:"ShortcutPicker"
            menuDelegate: paneItemMenu
            url:"qrc:/example/qml/page/T_ShortcutPicker.qml"
            onTap:{ navigationView.push(url) }
        }
    }

@zhuzichu520 ,可以修改关闭了。