Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. How to run external QT program from PyQT5 on MacOS
Forum Updated to NodeBB v4.3 + New Features

How to run external QT program from PyQT5 on MacOS

Scheduled Pinned Locked Moved Unsolved Qt for Python
29 Posts 3 Posters 4.3k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    Benjamin Halko
    wrote on 17 Jan 2022, 16:43 last edited by Benjamin Halko
    #12

    @jsulm Yeah finder is installed. By Finder rather than MacOS do you mean telling finder to open Dolphin Emulator rather than just tell MacOS to open it?

    Oh and Dolphin works just fine when running it from Finder normally, it is just when I launch it using subprocess.Popen that is the trouble.

    1 Reply Last reply
    0
    • S Offline
      S Offline
      SGaist
      Lifetime Qt Champion
      wrote on 17 Jan 2022, 18:47 last edited by
      #13

      From the looks of it, we are talking about very different software.

      "Dolphin" is known to be the KDE file manager. So from the looks of it you are trying to start something very different. Can you give more details about what it is ? And what exactly you are trying to do with your application ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      B 1 Reply Last reply 17 Jan 2022, 20:02
      0
      • S SGaist
        17 Jan 2022, 18:47

        From the looks of it, we are talking about very different software.

        "Dolphin" is known to be the KDE file manager. So from the looks of it you are trying to start something very different. Can you give more details about what it is ? And what exactly you are trying to do with your application ?

        B Offline
        B Offline
        Benjamin Halko
        wrote on 17 Jan 2022, 20:02 last edited by
        #14

        @SGaist I am wanting to open the Dolphin Emulator from my app as well as tell it to load a game using the -e argument that it accepts. However since Dolphin is also a QT program when trying to run it using subprocess, it tries loading both sets of libraries (from my app and Dolphin)

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 17 Jan 2022, 20:10 last edited by
          #15

          What if you use the QProcess::startDetached method ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          B 2 Replies Last reply 18 Jan 2022, 00:33
          0
          • S SGaist
            17 Jan 2022, 20:10

            What if you use the QProcess::startDetached method ?

            B Offline
            B Offline
            Benjamin Halko
            wrote on 18 Jan 2022, 00:33 last edited by Benjamin Halko
            #16

            @SGaist Ok so I tried and nothing happened! But then I tried using the executable located in /Contents/MacOS/Dolphin
            and it gave me this:

            objc[2357]: Class QMacAutoReleasePoolTracker is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53a9f8) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8198). One of the two will be used. Which one is undefined.
            objc[2357]: Class QT_ROOT_LEVEL_POOL__THESE_OBJECTS_WILL_BE_RELEASED_WHEN_QAPP_GOES_OUT_OF_SCOPE is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53aa70) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8210). One of the two will be used. Which one is undefined.
            objc[2357]: Class KeyValueObserver is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53aa98) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8238). One of the two will be used. Which one is undefined.
            objc[2357]: Class RunLoopModeTracker is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53aae8) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8288). One of the two will be used. Which one is undefined.
            QObject::moveToThread: Current thread (0x7faab1e065c0) is not the object's thread (0x7faab1c17ed0).
            Cannot move to target thread (0x7faab1e065c0)
            
            You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
            qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found.
            This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
            
            Available platform plugins are: cocoa, minimal, offscreen, webgl.
            

            This was the code I used:

            launch = QProcess()
            launch.startDetached(dolphinPath+"/Contents/MacOS/Dolphin")
            
            1 Reply Last reply
            0
            • S SGaist
              17 Jan 2022, 20:10

              What if you use the QProcess::startDetached method ?

              B Offline
              B Offline
              Benjamin Halko
              wrote on 19 Jan 2022, 00:01 last edited by
              #17

              @SGaist Oh by the way, this issue only occurs when the program is packaged with pyinstaller, running it regularly works just fine.

              1 Reply Last reply
              0
              • S Offline
                S Offline
                SGaist
                Lifetime Qt Champion
                wrote on 19 Jan 2022, 19:12 last edited by
                #18

                What exactly are you packaging ?

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • B Offline
                  B Offline
                  Benjamin Halko
                  wrote on 19 Jan 2022, 23:43 last edited by Benjamin Halko
                  #19

                  Here is my project folder. Here is the actual run dolphin function. Hope that helps.

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on 21 Jan 2022, 19:33 last edited by SGaist
                    #20

                    Did you try to use Popen with shell=True ?

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    B 1 Reply Last reply 22 Jan 2022, 19:01
                    0
                    • S SGaist
                      21 Jan 2022, 19:33

                      Did you try to use Popen with shell=True ?

                      B Offline
                      B Offline
                      Benjamin Halko
                      wrote on 22 Jan 2022, 19:01 last edited by Benjamin Halko
                      #21

                      @SGaist It gave the same error LSOpenURLsWithRole() failed with error -10810 for the file /Users/benjamin/Desktop/Dolphin.app.

                      Oh and I tried starting the .app not executable in /Contents/MacOS/

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on 22 Jan 2022, 20:04 last edited by
                        #22

                        Which version of Qt are your application and Dolphin using ?

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        B 1 Reply Last reply 22 Jan 2022, 23:40
                        0
                        • S SGaist
                          22 Jan 2022, 20:04

                          Which version of Qt are your application and Dolphin using ?

                          B Offline
                          B Offline
                          Benjamin Halko
                          wrote on 22 Jan 2022, 23:40 last edited by Benjamin Halko
                          #23

                          @SGaist I am using PyQt5 (I think version 5.12.2) And I have been informed that Dolphin uses 5.15.0 (C++). Although it seems that Dolphin uses this custom version ...maybe???

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on 24 Jan 2022, 19:25 last edited by
                            #24

                            You should try with both using the same version of Qt.

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            B 1 Reply Last reply 26 Jan 2022, 19:56
                            0
                            • B Offline
                              B Offline
                              Benjamin Halko
                              wrote on 25 Jan 2022, 22:20 last edited by Benjamin Halko
                              #25

                              My bad I was using PyQt5 version 5.15.5, but I will still try using Dolphins version.

                              1 Reply Last reply
                              0
                              • S SGaist
                                24 Jan 2022, 19:25

                                You should try with both using the same version of Qt.

                                B Offline
                                B Offline
                                Benjamin Halko
                                wrote on 26 Jan 2022, 19:56 last edited by Benjamin Halko
                                #26

                                @SGaist Ok so I update PyQt5 and I used ['open', '/Users/benjamin/Desktop/Dolphin.app/Contents/MacOS/Dolphin'],shell=False and it worked!
                                But then when I went to use ['open', '/Users/benjamin/Desktop/Dolphin.app/Contents/MacOS/Dolphin', '--args', '-e', gamePath],shell=False to try to load a game, it gave me the open command usage dialog. Is there something wrong with using --args?
                                Also I tried things like opening with just /Users/benjamin/Desktop/Dolphin.app or using shell=True but they also didn't work...

                                I wonder if the arguments for Dolphin only work when running from the Dolphin.app and not the /Contents.... one.
                                Took a look and yep, the /Contents one doesn't support arguments...

                                J 1 Reply Last reply 27 Jan 2022, 07:36
                                0
                                • B Benjamin Halko
                                  26 Jan 2022, 19:56

                                  @SGaist Ok so I update PyQt5 and I used ['open', '/Users/benjamin/Desktop/Dolphin.app/Contents/MacOS/Dolphin'],shell=False and it worked!
                                  But then when I went to use ['open', '/Users/benjamin/Desktop/Dolphin.app/Contents/MacOS/Dolphin', '--args', '-e', gamePath],shell=False to try to load a game, it gave me the open command usage dialog. Is there something wrong with using --args?
                                  Also I tried things like opening with just /Users/benjamin/Desktop/Dolphin.app or using shell=True but they also didn't work...

                                  I wonder if the arguments for Dolphin only work when running from the Dolphin.app and not the /Contents.... one.
                                  Took a look and yep, the /Contents one doesn't support arguments...

                                  J Offline
                                  J Offline
                                  jsulm
                                  Lifetime Qt Champion
                                  wrote on 27 Jan 2022, 07:36 last edited by
                                  #27

                                  @Benjamin-Halko said in How to run external QT program from PyQT5 on MacOS:

                                  Is there something wrong with using --args?

                                  I don't know.
                                  What exactly does "command usage dialog" tell you? You're probably using --args wrongly.

                                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  B 1 Reply Last reply 27 Jan 2022, 20:23
                                  0
                                  • J jsulm
                                    27 Jan 2022, 07:36

                                    @Benjamin-Halko said in How to run external QT program from PyQT5 on MacOS:

                                    Is there something wrong with using --args?

                                    I don't know.
                                    What exactly does "command usage dialog" tell you? You're probably using --args wrongly.

                                    B Offline
                                    B Offline
                                    Benjamin Halko
                                    wrote on 27 Jan 2022, 20:23 last edited by Benjamin Halko
                                    #28

                                    @jsulm It is just what it gives you when you just type open.

                                    Also, when launching the .app from Python, Dolphin starts then immediately crashes with this error message using Apples Crash Message Screen Thing: https://pastebin.com/NqBK0YvQ (It also shows LSOpenURLsWithRole() failed with error -10810 for the file /Users/benjamin/Desktop/Dolphin.app. in the terminal window)

                                    J 1 Reply Last reply 28 Jan 2022, 07:27
                                    0
                                    • B Benjamin Halko
                                      27 Jan 2022, 20:23

                                      @jsulm It is just what it gives you when you just type open.

                                      Also, when launching the .app from Python, Dolphin starts then immediately crashes with this error message using Apples Crash Message Screen Thing: https://pastebin.com/NqBK0YvQ (It also shows LSOpenURLsWithRole() failed with error -10810 for the file /Users/benjamin/Desktop/Dolphin.app. in the terminal window)

                                      J Offline
                                      J Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on 28 Jan 2022, 07:27 last edited by
                                      #29

                                      @Benjamin-Halko As I said you first need to find out how to call Dolphin properly.
                                      Try to pass it -h parameter to get more information.

                                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      1 Reply Last reply
                                      0

                                      21/29

                                      22 Jan 2022, 19:01

                                      • Login

                                      • Login or register to search.
                                      21 out of 29
                                      • First post
                                        21/29
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • Users
                                      • Groups
                                      • Search
                                      • Get Qt Extensions
                                      • Unsolved