Skip to content

Commit

Permalink
Add a hook for qtmodern (#305)
Browse files Browse the repository at this point in the history
  • Loading branch information
sanzoghenzo committed Aug 26, 2021
1 parent 76490f6 commit fd70762
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 0 deletions.
1 change: 1 addition & 0 deletions news/305.new.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add a hook for ``qtmodern`` to collect qss data files.
2 changes: 2 additions & 0 deletions requirements-test-libraries.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ pyusb==1.0.2
pynput==1.7.3
pystray==0.17.3
pyzmq==22.0.3
PyQt5==5.15.4
qtmodern==0.2.0
Rtree==0.9.7
sentry-sdk==0.19.3
# shotgun_api3 can only be installed from git
Expand Down
15 changes: 15 additions & 0 deletions src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# ------------------------------------------------------------------
# Copyright (c) 2021 PyInstaller Development Team.
#
# This file is distributed under the terms of the GNU General Public
# License (version 2.0 or later).
#
# The full license is available in LICENSE.GPL.txt, distributed with
# this software.
#
# SPDX-License-Identifier: GPL-2.0-or-later
# ------------------------------------------------------------------

from PyInstaller.utils.hooks import collect_data_files

datas = collect_data_files("qtmodern", includes=["**/*.qss"])
26 changes: 26 additions & 0 deletions src/_pyinstaller_hooks_contrib/tests/test_libraries.py
Original file line number Diff line number Diff line change
Expand Up @@ -738,3 +738,29 @@ def test_pythonnet3(pyi_builder):
import clr
""")


if is_win:
# This is a hack to prevent monkeypatch from interfering with PyQt5's additional PATH entries. See:
# https://github.com/pyinstaller/pyinstaller/commit/b66c9021129e9e875ddd138a298ce542483dd6c9
try:
import PyQt5 # noqa: F401
except ImportError:
pass


@importorskip("qtmodern")
@importorskip("PyQt5")
def test_qtmodern(pyi_builder):
pyi_builder.test_source("""
import sys
from PyQt5 import QtWidgets
import qtmodern.styles
import qtmodern.windows
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
qtmodern.styles.dark(app)
modern_window = qtmodern.windows.ModernWindow(window)
modern_window.show()
""")

0 comments on commit fd70762

Please sign in to comment.