Supporting Qt 6 - What's needed?
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Supporting Qt 6 - What's needed?
@realthunder can you weigh-in on this topic since you're working toward a toponaming merge. Should we focus on qt6 post-toponaming or can we do it concurrently?
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Supporting Qt 6 - What's needed?
I follow https://doc.qt.io/qt-6/porting-to-qt6-using-clazy.html
https://github.com/Kuzma30/FreeCAD/tree/qt6
I apply 4 checks as shown on "How to apply Clazy checks within Qt Creator" chapter.
Some of files is failed (600+) But QtCreator not save failed files list. (or I make mistake and not found where)
Edit
Run checks without strings convertion
https://github.com/Kuzma30/FreeCAD/tree/qt6v1
https://github.com/Kuzma30/FreeCAD/tree/qt6
I apply 4 checks as shown on "How to apply Clazy checks within Qt Creator" chapter.
Some of files is failed (600+) But QtCreator not save failed files list. (or I make mistake and not found where)
Edit
Run checks without strings convertion
https://github.com/Kuzma30/FreeCAD/tree/qt6v1
RealThunder's A3 Wiki translation, join the project https://crowdin.com/project/freecad-asm3-wiki
Re: Supporting Qt 6 - What's needed?
I decide start from "Disable use of C++ API deprecated in Qt 5.15" chapter
https://github.com/Kuzma30/FreeCAD/tree/qt5.15
I use globalStrut as QSize (0,0) (defaults value). I think this is not correct. I don't know correct values.
P.S. During replace obsolete function I see many files with different newline style (Dos, Unix-way). Also there are different code style formatting. May be we cleanup our code with dos2unix or unix2dos?
https://github.com/Kuzma30/FreeCAD/tree/qt5.15
I use globalStrut as QSize (0,0) (defaults value). I think this is not correct. I don't know correct values.
P.S. During replace obsolete function I see many files with different newline style (Dos, Unix-way). Also there are different code style formatting. May be we cleanup our code with dos2unix or unix2dos?
RealThunder's A3 Wiki translation, join the project https://crowdin.com/project/freecad-asm3-wiki
Re: Supporting Qt 6 - What's needed?
Not worth it. Should be a separate PR. Remember we are also trying to integrate Toponaming.
Edit: let's try to avoid eating baby kittens AKA context swicthing: https://webchick.net/please-stop-eating-baby-kittens
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
- adrianinsaval
- Veteran
- Posts: 5541
- Joined: Thu Apr 05, 2018 5:15 pm
Re: Supporting Qt 6 - What's needed?
are those changes still compatible with qt 5.9?Kuzma30 wrote: ↑Sat Jul 09, 2022 10:10 am I follow https://doc.qt.io/qt-6/porting-to-qt6-using-clazy.html
https://github.com/Kuzma30/FreeCAD/tree/qt6
I apply 4 checks as shown on "How to apply Clazy checks within Qt Creator" chapter.
Some of files is failed (600+) But QtCreator not save failed files list. (or I make mistake and not found where)
Edit
Run checks without strings convertion
https://github.com/Kuzma30/FreeCAD/tree/qt6v1
Re: Supporting Qt 6 - What's needed?
No.adrianinsaval wrote: ↑Sat Jul 09, 2022 9:30 pmare those changes still compatible with qt 5.9?Kuzma30 wrote: ↑Sat Jul 09, 2022 10:10 am I follow https://doc.qt.io/qt-6/porting-to-qt6-using-clazy.html
https://github.com/Kuzma30/FreeCAD/tree/qt6
I apply 4 checks as shown on "How to apply Clazy checks within Qt Creator" chapter.
Some of files is failed (600+) But QtCreator not save failed files list. (or I make mistake and not found where)
Edit
Run checks without strings convertion
https://github.com/Kuzma30/FreeCAD/tree/qt6v1
It will compile with qt6 only. I made it to see how clazy porting tool work.
If we follow porting guide than we must disable obsolete function for qt5.15 not 5.9. (read my previous post)
RealThunder's A3 Wiki translation, join the project https://crowdin.com/project/freecad-asm3-wiki
Re: Supporting Qt 6 - What's needed?
disclaimer - i do not do c...
but is it not the https://www.qt.io/blog/porting-from-qt- ... at-library that is needed for fc at this point in time, both 5 & 6 compilation and runtimes?
in my amateur eyes clazy seems to be aimed at porting to 6 and ditching 5...
this whole story also raises the hypothetical question if fc should still keep pyside - alias, or switch to pyside2 (and lock the door on 4) - sort of implies that also in c one could go for 5 instead of 4 base...
had one edge use case (on linux) where i could not get imports working (forgot what it was - probably a not very important use case), since the fc code base uses pyside imports while in reality the installed package is pyside2...
if someone finds the time, just out of personal interest,
how is the shiboken/pivy deps influenced by 5 or 6 (other than that it obviously has to be complied to matching qt and py versions)?
but is it not the https://www.qt.io/blog/porting-from-qt- ... at-library that is needed for fc at this point in time, both 5 & 6 compilation and runtimes?
in my amateur eyes clazy seems to be aimed at porting to 6 and ditching 5...
this whole story also raises the hypothetical question if fc should still keep pyside - alias, or switch to pyside2 (and lock the door on 4) - sort of implies that also in c one could go for 5 instead of 4 base...
had one edge use case (on linux) where i could not get imports working (forgot what it was - probably a not very important use case), since the fc code base uses pyside imports while in reality the installed package is pyside2...
if someone finds the time, just out of personal interest,
how is the shiboken/pivy deps influenced by 5 or 6 (other than that it obviously has to be complied to matching qt and py versions)?
- adrianinsaval
- Veteran
- Posts: 5541
- Joined: Thu Apr 05, 2018 5:15 pm
Re: Supporting Qt 6 - What's needed?
yes but we can't take the suggestion, keep those that are compatible with both as is and those qt6 specific inside if else blocks
the door for qt4 is already closed, minimum supported version is qt 5.9 currently, using pyside2 might be problematic because we now need pyside6 for qt6, perhaps we can have an alias that is set to pyside2 or pyside6 depending on the chosen qt version? I don't know much of how this part works.this whole story also raises the hypothetical question if fc should still keep pyside - alias, or switch to pyside2 (and lock the door on 4) - sort of implies that also in c one could go for 5 instead of 4 base...
There is shiboken6, I guess we need pivy compiled against qt6 too.how is the shiboken/pivy deps influenced by 5 or 6 (other than that it obviously has to be complied to matching qt and py versions)?
Re: Supporting Qt 6 - What's needed?
Someone volunteer to open an upstream Pivy ticket for this?adrianinsaval wrote: ↑Sun Jul 10, 2022 6:33 pm There is shiboken6, I guess we need pivy compiled against qt6 too.
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Supporting Qt 6 - What's needed?
Three questions:
1. What about Python itself? Which version is gonna be the default for 0.21? 3.10 has some interesting new stuff with switch/case.
2. About PySide6. Why is that "required" for external WB instead of just "Qt-6" when you already use it internally?
3. Is Qt-6 gonna be used in 0.21 ?
About Nim. Latest Release 2.0.2. Here is Nim in 100 seconds and a Nim package. There are Qt and OCCT packages.