Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Screenshot of expanded combobox
Forum Updated to NodeBB v4.3 + New Features

Screenshot of expanded combobox

Scheduled Pinned Locked Moved Solved QML and Qt Quick
14 Posts 3 Posters 1.6k Views 1 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.
  • M Offline
    M Offline
    Montjet
    wrote on last edited by
    #3

    Unfortunately, I also need popup in the screenshot :(

    mrjjM 1 Reply Last reply
    0
    • M Montjet

      Unfortunately, I also need popup in the screenshot :(

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

      @Montjet
      hi
      Could you try
      combo.popup.visible = true
      in Keys.onDigit1Pressed:
      https://stackoverflow.com/questions/38229511/how-to-open-combobox-dropdown-menu

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Montjet
        wrote on last edited by Montjet
        #5

        @mrjj said in Screenshot of expanded combobox:

        combo.popup.visible = true

        it doesn't work :(

        mrjjM 1 Reply Last reply
        0
        • M Montjet

          @mrjj said in Screenshot of expanded combobox:

          combo.popup.visible = true

          it doesn't work :(

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

          @Montjet
          Did you try anything else from the link ?
          To try to open it before the shot ?

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Montjet
            wrote on last edited by Montjet
            #7

            Yes, I also tried to add parent of Popup:

            import QtQuick 2.9
            import QtQuick.Controls 2.2
            import QtQuick.Window 2.2
            
            Window
            {
                id: window
                visible: true
                width: 640
                height: 480
                title: qsTr("Hello World")
                Item
                {
                    id: root
                    anchors.fill: parent
                    focus: true
                    ComboBox
                    {
                        id: combo
                        width: 200
                        model: [ "First", "Second", "Third" ]
                        popup.parent: window.contentItem;
                        popup.modal: true;
                    }
                    Keys.onDigit1Pressed:
                    {
            
                       console.log("bbbb");
                        combo.popup.visible = true
                        root.grabToImage(function(result)
                                    {
                                        result.saveToFile("test.png");
                                        console.log("file has been saved");
                                    }, Qt.size(root.width, root.height));
                        combo.popup.visible = true
                    }
                }
            }
            

            Nothing works for me :(

            1 Reply Last reply
            0
            • M Offline
              M Offline
              Montjet
              wrote on last edited by
              #8

              Oh, but this code works well:

              // ...
                          Window.contentItem.grabToImage(function(result)
                                      {
                                          result.saveToFile("test.png");
                                          console.log("file has been saved");
                                      }, Qt.size(root.width, root.height));
              // ...
              
              

              I need to take a screenshot of selected items, so my problem is still not resolved :(

              mrjjM GrecKoG 2 Replies Last reply
              0
              • M Montjet

                Oh, but this code works well:

                // ...
                            Window.contentItem.grabToImage(function(result)
                                        {
                                            result.saveToFile("test.png");
                                            console.log("file has been saved");
                                        }, Qt.size(root.width, root.height));
                // ...
                
                

                I need to take a screenshot of selected items, so my problem is still not resolved :(

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

                @Montjet
                Hmm
                Try with timer then
                http://doc.qt.io/qt-5/qml-qtqml-timer.html#details

                so set it high enough till u can open combo and select item and
                it should take shot with the dropdown visible.

                1 Reply Last reply
                0
                • M Montjet

                  Oh, but this code works well:

                  // ...
                              Window.contentItem.grabToImage(function(result)
                                          {
                                              result.saveToFile("test.png");
                                              console.log("file has been saved");
                                          }, Qt.size(root.width, root.height));
                  // ...
                  
                  

                  I need to take a screenshot of selected items, so my problem is still not resolved :(

                  GrecKoG Offline
                  GrecKoG Offline
                  GrecKo
                  Qt Champions 2018
                  wrote on last edited by
                  #10

                  @Montjet said in Screenshot of expanded combobox:

                  I need to take a screenshot of selected items, so my problem is still not resolved :(

                  What's the problem ?
                  When tested this seem to correctly grabs a screenshot of the opened combobox.
                  What more do you want ?

                  1 Reply Last reply
                  1
                  • M Offline
                    M Offline
                    Montjet
                    wrote on last edited by Montjet
                    #11

                    My main project is based on Qt 5.9.2.
                    For this solution I got error... :

                    QML QQuickRootItem: grabToImage: item has no QML engine
                    

                    It's difficult to solve this issue ;(

                    @GrecKo
                    Sometimes I need to take screenshot of a single rectangle that contains comboBox, not an entire window.

                    Example:

                    import QtQuick 2.9
                    import QtQuick.Controls 2.2
                    import QtQuick.Window 2.2
                    
                    Window
                    {
                        id: window
                        visible: true
                        width: 640
                        height: 480
                        title: qsTr("Hello World")
                        Item
                        {
                            id: root1
                            anchors.fill: parent
                            focus: true
                            ComboBox
                            {
                                id: combo1
                                width: 200
                                model: [ "First", "Second", "Third" ]
                                popup.parent: root1;
                                popup.modal: false;
                            }
                            Keys.onDigit1Pressed:
                            {
                    
                               console.log("bbbb");
                                combo1.popup.visible = true
                                window.contentItem.grabToImage(function(result)
                                            {
                                                result.saveToFile("test.png");
                                                console.log("file has been saved");
                                            }, Qt.size(root1.width, root1.height));
                                combo1.popup.visible = true
                            }
                        }
                    
                        Item
                        {
                            id: root2
                            anchors.fill: parent
                            focus: true
                            ComboBox
                            {
                                id: combo2
                                width: 200
                                model: [ "First", "Second", "Third" ]
                                popup.parent: root2;
                                popup.modal: false;
                                anchors.right: parent.right
                            }
                            Keys.onDigit2Pressed:
                            {
                    
                               console.log("bbbb");
                                combo2.popup.visible = true
                                window.contentItem.grabToImage(function(result)
                                            {
                                                result.saveToFile("test.png");
                                                console.log("file has been saved");
                                            }, Qt.size(root2.width, root2.height));
                                combo2.popup.visible = true
                            }
                        }
                    }
                    
                    

                    I want to take a screenshot of only one combobox.

                    1 Reply Last reply
                    0
                    • GrecKoG Offline
                      GrecKoG Offline
                      GrecKo
                      Qt Champions 2018
                      wrote on last edited by
                      #12

                      You want to screenshot only the combobox popup ?
                      Does that do what you want : combo1.popup.contentItem.grabToImage ?

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        Montjet
                        wrote on last edited by Montjet
                        #13

                        I want to screenshot of root2 or root1.

                        Timer also doesn't work

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          Montjet
                          wrote on last edited by Montjet
                          #14

                          Ok, I fixed it. I had older version of import QtQuick.Window -> 2.0

                          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