From 67b971fea687b26e466a20fa01a830f9ac682c39 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Wed, 3 Jun 2020 11:46:35 +0200 Subject: Use pyside2-uic instead of uic for the loadUiType Since we deploy the pyside2-uic wrapper inside the bin/ directory of virtual environments, that takes care of using the 'uic' binary we ship with the wheels, which is located in site-packages/PySide2/. The current implementation of loadUiType, runs 'uic -g python' but for people without a Qt installation, it has no effect since 'uic' is neither in PATH, nor in the system. Using 'pyside2-uic' instead will solve this issue. Task-number: PYSIDE-1223 Change-Id: I2c801a16c9ff4faa5cf8711bd718a634f017e592 Reviewed-by: Friedemann Kleint --- sources/pyside2/PySide2/glue/qtuitools.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'sources') diff --git a/sources/pyside2/PySide2/glue/qtuitools.cpp b/sources/pyside2/PySide2/glue/qtuitools.cpp index 668b512e4..d81f6205a 100644 --- a/sources/pyside2/PySide2/glue/qtuitools.cpp +++ b/sources/pyside2/PySide2/glue/qtuitools.cpp @@ -137,16 +137,19 @@ if (uiFileName.isEmpty()) { Py_RETURN_NONE; } -QString uicBin("uic"); -QStringList uicArgs = {"-g", "python", QString::fromUtf8(uiFileName)}; +// Use the 'pyside2-uic' wrapper instead of 'uic' +// This approach is better than rely on 'uic' since installing +// the wheels cover this case. +QString uicBin("pyside2-uic"); +QStringList uicArgs = {QString::fromUtf8(uiFileName)}; QProcess uicProcess; uicProcess.start(uicBin, uicArgs); if (!uicProcess.waitForFinished()) { - qCritical() << "Cannot run 'uic': " << uicProcess.errorString() << " - " + qCritical() << "Cannot run 'pyside2-uic': " << uicProcess.errorString() << " - " << "Exit status " << uicProcess.exitStatus() << " (" << uicProcess.exitCode() << ")\n" - << "Check if 'uic' is in PATH"; + << "Check if 'pyside2-uic' is in PATH"; Py_RETURN_NONE; } QByteArray uiFileContent = uicProcess.readAllStandardOutput(); -- cgit v1.2.3