Skip to main content

Utils

Overview

The utils.py module provides utility functions for working with Qt applications, particularly for handling file paths, resource conversion, and designer integration. These utilities support the Custom Widgets framework.

Path Utilities

get_absolute_path(relative_path)

Converts a relative path to an absolute path based on the main script's directory.

Parameters:

  • relative_path (str): The path relative to the main script

Returns:

  • Absolute path (str)

Example:

abs_path = get_absolute_path("ui/main_window.ui")

replace_url_prefix(url, new_prefix)

Replaces the prefix in a Qt resource URL with a new prefix.

Parameters:

  • url (str): Original resource URL (e.g., ":/images/icon.png")
  • new_prefix (str): New prefix to use

Returns:

  • Modified URL (str)

Example:

new_url = replace_url_prefix(":/images/icon.png", "Qss/icons")

get_icon_path(icon)

Gets the correct path for a themed icon, handling both QIcon objects and string paths.

Parameters:

  • icon (QIcon|str): Icon to process

Returns:

  • Path to themed icon (str)

Designer Utilities

is_in_designer(widget)

Checks if a widget is being viewed in Qt Designer.

Parameters:

  • widget: The widget to check

Returns:

  • True if in Designer, False otherwise

Example:

if is_in_designer(self):
print("Running in Qt Designer")

File Conversion Utilities

createQrcFile(contents, filePath)

Creates a Qt Resource Collection (.qrc) file.

Parameters:

  • contents (str): XML content for the QRC file
  • filePath (str): Destination path for the QRC file

qrcToPy(qrcFile, pyFile)

Converts a .qrc file to a Python resource file.

Parameters:

  • qrcFile (str): Path to input .qrc file
  • pyFile (str): Path to output .py file

Automatically detects Qt binding (PySide/PyQt) and uses correct compiler.

uiToPy(uiFile, pyFile)

Converts a .ui file to a Python file.

Parameters:

  • uiFile (str): Path to input .ui file
  • pyFile (str): Path to output .py file

Automatically detects Qt binding (PySide/PyQt) and uses correct compiler.

Example:

uiToPy("design/main_window.ui", "src/ui_main_window.py")

File System Utilities

renameFolder(old_name, new_name)

Renames a folder, removing the destination if it exists.

Parameters:

  • old_name (str): Current folder path
  • new_name (str): New folder path

SharedData Class

Singleton class for managing shared file URLs across the application.

Methods:

  • add_file_url(file_url): Adds a file URL to track
  • get_file_urls(): Returns all tracked file URLs
  • clear_file_urls(): Clears all tracked URLs
  • url_exists(file_url): Checks if URL is being tracked

Example:

shared = SharedData()
shared.add_file_url("styles/main.qss")
if shared.url_exists("styles/main.qss"):
print("File is tracked")

Usage Notes

  • Path utilities handle cross-platform path formatting
  • Conversion functions automatically detect your Qt binding (PySide/PyQt)
  • The SharedData class helps coordinate file monitoring across components
  • All functions include error handling for file operations

Error Handling

Functions will:

  • Silently handle most file system errors
  • Print error messages for conversion failures
  • Maintain consistent path formats across platforms