What is new?
Version 0.7.3:
Json stylesheet ‘hot reload’:
Changes made to Json stylesheet
files will be reloaded, no need to restart your app, just set LiveCompileQss
to true
self.liveCompileQss = True
Prevent new icons generation
You can prevent the new/missing icons from being generated by
- Using Json file, set
"CheckForMissingicons"
tofalse
{ "LiveCompileQss": true, "ShowLogs": false, "CheckForMissingicons": false, "QSettings": [ {
- From python file
self.checkForMissingicons = True #generate new icons # OR self.checkForMissingicons = False # do not generate new icons
New widgets
Added new custom widgets: QDraggableWidget
and QCustomModals
.
Version 0.7.3:
Qss stylesheet ‘hot reload’:
All changes made to your qss\scss\defaultStyle.scss
style sheet file will be recompiled and automatically applied to your app GUI, no need to restart the app when styling your GUI
-
You can apply this feature from your JSon style by adding
LiveCompileQss: true,
:"ShowLogs": true, "LiveCompileQss": true, "QMainWindow": [ {
-
you can also do this from your python file:
self.liveCompileQss = True #self = mainwindow
Version 0.6.9:
- New project structure:
To use version 0.6.9 or later, it’s best to stick to the project structure outlined below. Alternatively, you can use the ProjectMake or project wizard
tool, which will set up your project with the same structure automatically.
project_name/
│
├── README.md
├── requirements.txt
├── main.py
│
├── ui/
│ ├── main_window.ui
│ └── ...
│
├── src/
│ ├── __init__.py
│ ├── utils.py
│ ├── helper_functions.py
│ └── ui_main_window.py # Automatically generated from main_window.ui
│
├── qss/
│ ├── scss/
│ │ ├── style.scss
│ │ └── ...
│ │
│ └── icons/
│ ├── icon1.png
│ └── ...
│
├── logs/
│ └── custom_widgets.log
│
├── json_styles/
│ ├── style.json
│ └── ...
│
└── generated-files/
├── new_files # Automatically generated by Custom Widgets
└── ...
Description:
- README.md: Description of the project.
- requirements.txt: List of Python dependencies required for the project.
- main.py: Entry point of the application.
- ui/: Directory containing UI-related files.
- main_window.ui: Main window layout file.
- Other UI-related files.
- src/: Source code directory.
- __init__.py: Package initialization file.
- utils.py: Utility functions.
- helper_functions.py: Additional helper functions.
- ui_main_window.py: Automatically generated Python code from main_window.ui.
- qss/: Directory for Qt Style Sheets (QSS) and icons.
- scss/: SCSS files for styling.
- icons/: Icon images.
- logs/: Directory for log files.
- custom_widgets.log: Log file.
- json_styles/: Directory for JSON style files.
- style.json: Example JSON style file.
- generated-files/: Directory for files auto-generated by the custom widgets module.
- Example generated files include UI’s and JSon files
This structure allows for automatic conversion of UI files to Python code and placement within the src folder, simplifying the development process for users.
- Quick theme engine.
- Applies new icons on theme change without need to restart your app.
- Faster theme/icons switching.
- The custom widgets module comes with its own icon sets:
- Feather
- FontAwesome
- and Google material design icons.
- New custom widgets
logs
.- Log file is located inside the “Logs” folder.
- Quick
CMD/Terminal
commands:- To launch
ProjectMaker / project wizard
, runCustom_Widgets --create-project
This will create a
Qt-python
project inside your empty folder, ready to run. - Easy to convert UI files to py. The cutom widgets
Theme Engine
eliminated the need forQRC
topython
file conversion, therefore to generateUI-Python
files without any errors, useCustom_Widgets --convert-ui ui-path --qt-library your-lib
- Monitor changes made to UI file and generate new .py file and other necessary files for the custom widgets
Custom_Widgets --monitor-ui ui-path --qt-library your-lib
Where:
ui-path
is the UI file path or folder containing UI files.your-lib
isPySide6
,PySide2
,PyQt5
orPyQt6
- To launch
Updating old GUI app to work with the current Custom Widgets module update
Version 0.6.2:
-
Added support for loading multiple
JSON Stylesheets
By default, the json file namedstyle.json
will be loaded, so no need to specify. The file must me inside the root directory of your project,json
directory, orjsonstyles
directory inside your project folder for it to be automatically loaded.If you have multiple JSON stylesheet files, then you can apply them to your GUI like this:
######################################################################## # APPLY JSON STYLESHEET ######################################################################## # self = QMainWindow class # self.ui = Ui_MainWindow / user interface class loadJsonStyle(self, self.ui, jsonFiles = { "mystyle.json", "mydirectory/myJsonStyle.json" }) ########################################################################
This feature is helpful especially when you have multiple windows files that will share only some parts of the stylesheet shuch app app title, settings etc.
-
Toggle logs: You can now switch app logs on or off. This can be done from a python file:
# Show Logs self.showCustomWidgetsLogs = True
# Hide Logs self.showCustomWidgetsLogs = False
From the JSON file:
{ "ShowLogs": true,
{ "ShowLogs": false,
Version 0.6.8:
- Added full support for
pyside6