auto detection of the QT enviroment
All checks were successful
Build MuCaPy Executable / build-and-package (push) Successful in 1m43s
All checks were successful
Build MuCaPy Executable / build-and-package (push) Successful in 1m43s
This commit is contained in:
@@ -2226,16 +2226,55 @@ class MainWindow(QMainWindow):
|
||||
self.start_btn.setEnabled(False)
|
||||
self.stop_btn.setEnabled(False)
|
||||
|
||||
class initQT():
|
||||
def __init__(self):
|
||||
self.session_type = None # This is for QT #
|
||||
#--------------------#
|
||||
self.env = os.environ.copy() # This is for CV2 #
|
||||
|
||||
def getenv(self):
|
||||
# If the OS is Linux get Qts Session Type
|
||||
if platform.system() == "Linux":
|
||||
self.session_type = os.getenv("XDG_SESSION_TYPE")
|
||||
print(f"got {self.session_type} ")
|
||||
else:
|
||||
# If theres no Type then Exit 1
|
||||
print(
|
||||
"No XDG Session Type found!" \
|
||||
"echo $XDG_SESSION_TYPE" \
|
||||
"Run this command in bash!"
|
||||
)
|
||||
exit(1)
|
||||
|
||||
def setenv(self):
|
||||
# Set the Session Type to the one it got
|
||||
if self.session_type:
|
||||
os.environ["XDG_SESSION_TYPE"] = self.session_type
|
||||
print(f"set the ENVVAR to {self.session_type}")
|
||||
else:
|
||||
# If this fails then just exit with 1
|
||||
print(
|
||||
"Setting the XDG_SESSION_TYPE failed!" \
|
||||
f"export XDG_SESSION_TYPE={self.session_type}" \
|
||||
"run this command in bash"
|
||||
)
|
||||
exit(1)
|
||||
def shutupCV(self):
|
||||
# This needs some fixing as this only works before importing CV2 ; too much refactoring work tho!
|
||||
os.environ["OPENCV_LOG_LEVEL"] = "ERROR"
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Set the env
|
||||
os.environ["XDG_SESSION_TYPE"] = "xcb"
|
||||
# Initialize Qt
|
||||
qt = initQT()
|
||||
qt.getenv()
|
||||
qt.setenv()
|
||||
qt.shutupCV()
|
||||
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
# Set application style to Fusion for better dark mode support
|
||||
app.setStyle("Fusion")
|
||||
|
||||
|
||||
|
||||
window = MainWindow()
|
||||
window.show()
|
||||
|
||||
Reference in New Issue
Block a user