Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. "GTK" warning for Native QFileDialog under Linux

"GTK" warning for Native QFileDialog under Linux

Scheduled Pinned Locked Moved Solved General and Desktop
12 Posts 4 Posters 10.7k Views
  • 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.
  • SGaistS SGaist

    Hi,

    From a quick look, it doesn't seem there's anything that can be done currently see here.

    JonBJ Offline
    JonBJ Offline
    JonB
    wrote on last edited by
    #3

    @SGaist
    Thank you for that. I note that the call seems to be:

    gtk_file_chooser_dialog_new("", 0, ...)

    That 0 is for parent, which I understand to be the cause of the warning. Seems strange that the "parent" we pass to QFileDialog function does not get passed down to native dialog call?

    jsulmJ 1 Reply Last reply
    0
    • JonBJ JonB

      @SGaist
      Thank you for that. I note that the call seems to be:

      gtk_file_chooser_dialog_new("", 0, ...)

      That 0 is for parent, which I understand to be the cause of the warning. Seems strange that the "parent" we pass to QFileDialog function does not get passed down to native dialog call?

      jsulmJ Online
      jsulmJ Online
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #4

      @JNBarchan said in "GTK" warning for Native QFileDialog under Linux:

      Seems strange that the "parent" we pass to QFileDialog function does not get passed down to native dialog call?

      Because it can't. GTK does not know anything about any Qt classes - so it cannot use Qt classes as parents.

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

      JonBJ 1 Reply Last reply
      0
      • jsulmJ jsulm

        @JNBarchan said in "GTK" warning for Native QFileDialog under Linux:

        Seems strange that the "parent" we pass to QFileDialog function does not get passed down to native dialog call?

        Because it can't. GTK does not know anything about any Qt classes - so it cannot use Qt classes as parents.

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by JonB
        #5

        @jsulm
        Sorry, yes, I meant, when we pass a Qt parent widget as parent to QFileDialog it would pass the corresponding native window onto GTK level as parent. But I don't know anything about GTK!

        jsulmJ 1 Reply Last reply
        0
        • JonBJ JonB

          @jsulm
          Sorry, yes, I meant, when we pass a Qt parent widget as parent to QFileDialog it would pass the corresponding native window onto GTK level as parent. But I don't know anything about GTK!

          jsulmJ Online
          jsulmJ Online
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #6

          @JNBarchan But since it is a Qt application there is no native GTK window. Qt does not use GTK on Linux - as far as I know it draws by itself.

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

          mrjjM 1 Reply Last reply
          0
          • jsulmJ jsulm

            @JNBarchan But since it is a Qt application there is no native GTK window. Qt does not use GTK on Linux - as far as I know it draws by itself.

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #7

            @jsulm
            But a native QFileDialog might be GTK ?

            jsulmJ 1 Reply Last reply
            0
            • mrjjM mrjj

              @jsulm
              But a native QFileDialog might be GTK ?

              jsulmJ Online
              jsulmJ Online
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #8

              @mrjj Yes, the native dialog is GTK, but there is no other GTK window to use as parent, right?

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

              mrjjM JonBJ 2 Replies Last reply
              1
              • jsulmJ jsulm

                @mrjj Yes, the native dialog is GTK, but there is no other GTK window to use as parent, right?

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #9

                @jsulm
                Ah in that way. yes that would be hard to have in plain Qt app.

                1 Reply Last reply
                0
                • jsulmJ jsulm

                  @mrjj Yes, the native dialog is GTK, but there is no other GTK window to use as parent, right?

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by JonB
                  #10

                  @jsulm , @mrjj
                  Ah, now it is beginning to become clearer! I think you're saying:

                  • The native file dialog is a special kind of window: a "GTK" window. (This applies to Linux/X11? Ubuntu? Unity desktop only?)
                  • It would like another GTK window as its parent.
                  • But the Qt window which is its parent in QFileDialog is not a GTK window.
                  • So the code passes 0/NULL for the parent, and that causes the warning.

                  Right?

                  jsulmJ 1 Reply Last reply
                  0
                  • JonBJ JonB

                    @jsulm , @mrjj
                    Ah, now it is beginning to become clearer! I think you're saying:

                    • The native file dialog is a special kind of window: a "GTK" window. (This applies to Linux/X11? Ubuntu? Unity desktop only?)
                    • It would like another GTK window as its parent.
                    • But the Qt window which is its parent in QFileDialog is not a GTK window.
                    • So the code passes 0/NULL for the parent, and that causes the warning.

                    Right?

                    jsulmJ Online
                    jsulmJ Online
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #11

                    @JonB Yes, if you use native dialogs on Linux then Qt simply uses GTK dialogs (GTK is isn't related to Unity, see https://www.gtk.org/). Yes, as GTK does not know anything about Qt it is not possible to pass a parent to GTK dialogs from a Qt app.

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

                    JonBJ 1 Reply Last reply
                    1
                    • jsulmJ jsulm

                      @JonB Yes, if you use native dialogs on Linux then Qt simply uses GTK dialogs (GTK is isn't related to Unity, see https://www.gtk.org/). Yes, as GTK does not know anything about Qt it is not possible to pass a parent to GTK dialogs from a Qt app.

                      JonBJ Offline
                      JonBJ Offline
                      JonB
                      wrote on last edited by
                      #12

                      @jsulm
                      All makes sense now! I had assumed that a normal Qt (X11?) window/dialog would serve as the parent for (what turns out to be a GTK) native file dialog. Now I get the problem, and the reason for the warning!

                      1 Reply Last reply
                      0

                      • Login

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