Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] Consideration on Migrating the Interface from Tkinter to PyQt #27

Open
oldhiccup opened this issue Jan 13, 2025 · 6 comments
Labels
enhancement New feature or request

Comments

@oldhiccup
Copy link

First of All, I Would Like to Congratulate You on the Project!
I am interested in contributing to it.

I noticed that the project is currently using Tkinter as the framework for the GUI. While it is an excellent choice for simple and quick projects, I was wondering if you have considered migrating to PyQt or PySide as an alternative.

@Ati1707
Copy link
Owner

Ati1707 commented Jan 15, 2025

Hi, thank you for your interest in the project and your suggestion!

I originally chose to use CustomTkinter because it offered a more modern and visually appealing interface compared to standard Tkinter, while still being relatively simple to implement. However, I do recognize that CustomTkinter has its limitations—updates are infrequent, the implementation was made in a hacky way and the repository owner doesn’t seem to review pull requests or address issues promptly.

I haven’t considered migrating to PySide (or PyQt) yet since the project works and it's almost complete, but I do prefer using frameworks that have active support and are maintained. This makes a migration worth exploring. I’ll take some time this weekend to read through PySide’s documentation. I might have the code ready next week if I dont need to implement the widgets that I am currently using myself and if pyinstaller doesn't cause issues with the framework.

Kind Regards

@Ati1707 Ati1707 added the enhancement New feature or request label Jan 15, 2025
@oldhiccup
Copy link
Author

I can collaborate with this and other tasks. I made this suggestion just to see if you would like to follow this path, but I can also contribute using Tkinter if you don't have this vision for the project.

@Ati1707
Copy link
Owner

Ati1707 commented Jan 21, 2025

Over the weekend, I researched and considered switching to PySide, which supports all the widgets I use but results in significantly larger binary sizes. While optimizations like pyside-essentials or custom builds could help, the size would still be at least three times larger than my current setup.

I also took on two new projects during the weekend, one of which involves reversing a heavily obfuscated JavaScript file. I'm uncertain how long that will take to complete. Given my limited time and the fact that everything works with customtkinter, I’ll stick with it for now. I’m still open to a rewrite, as Qt is vastly superior to Tcl/Tk and supports all my current widgets natively, but its complexity and the larger binary size (~100MB for such a small project) make it a challenging shift.

@Ati1707
Copy link
Owner

Ati1707 commented Feb 2, 2025

Hi,

Just wanted to let you know I’ve started working on this. In the meantime, I’ve been experimenting with PySide on another project and I quiet liked its widgets, functionality, and overall aesthetic.

Today, I completed porting the widgets over. I only need to fix some bugs with the UI. The backend and creating the binary worked without any changes.

No custom styling has been applied yet, but the default look is already quite clean.

Image

@oldhiccup
Copy link
Author

I also ran some tests—nothing functional, just arranging things—but yours looks better haha.

It's been a few days since then, and I haven't made any further changes. I'm always busy with my own projects, but I'll help whenever possible because, in the end, this will benefit me as well.

I noticed you created a new branch—I'll take a look at it.

Image

Image

@Ati1707
Copy link
Owner

Ati1707 commented Feb 2, 2025

I fixed most if not all the bugs and dropped a test version v0.9.2 to try out. I’ll post it on the forums soon, feel free to grab it here:
https://github.com/Ati1707/DazContentInstaller/releases/tag/v0.9.2

The next update(V1) will include the option tab, swaping the progressbar to text updates and fix the last bug issue that is still open.

After that, I'll check if I can add a way to import existing libraries. But I'm pretty sure the official installer uses a database to track files, the same way I do. So it might be not possible or the users need to backup both the library and database to import.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants