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. Strange stylesheet behavior with QListView::item
Forum Updated to NodeBB v4.3 + New Features

Strange stylesheet behavior with QListView::item

Scheduled Pinned Locked Moved Unsolved General and Desktop
14 Posts 5 Posters 7.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.
  • qwasder85Q qwasder85

    I want to have a padding for QListView items in views with a specific object name.
    I've done similar things many times before, but this time I'm a bit confused. Here is my style sheet for QListView:

    QListView {
        border: 1px solid #cccccc;
        background: #f3f3f3;
        color: #252424;
        font-family: "Segoe UI";
        outline: 0;
    }
    
    QListView::item:hover {
        background: #f3f3f3;
        color: #252424;
    }
    
    QListView::item:selected {
        background: #bbdde6;
    }
    
    QListView#menuListView {
        border: 0;
        background: white;
    }
    
    QListView#menuListView::item {
        padding-left: 10;
    }
    

    As you can tell, I have a default style sheet for QListView, and I overwrite certain aspects for list views carrying the object name "menuListView". In this case, I want items to have a left padding. So far nothing too crazy.
    Unfortunately, the padding-left for "menuListView"-items only applies to hovered or selected items. Here is how this looks:

    alt text

    Any ideas?

    raven-worxR Offline
    raven-worxR Offline
    raven-worx
    Moderators
    wrote on last edited by
    #2

    @qwasder85 said in Strange stylesheet behavior with QListView::item:

    QListView#menuListView::item {
    padding-left: 10;
    }

    Basically this syntax should be correct, but unfortunately Qt stylesheet parsing isn't all the time.

    Just for testing: does style rule get applied when you remove the objectname selector part?

    --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
    If you have a question please use the forum so others can benefit from the solution in the future

    JonBJ qwasder85Q 2 Replies Last reply
    0
    • raven-worxR raven-worx

      @qwasder85 said in Strange stylesheet behavior with QListView::item:

      QListView#menuListView::item {
      padding-left: 10;
      }

      Basically this syntax should be correct, but unfortunately Qt stylesheet parsing isn't all the time.

      Just for testing: does style rule get applied when you remove the objectname selector part?

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

      @raven-worx
      Given what you've said (I've noted before what you've said about QSS! :) ), an item in a QListViewis of class QListViewItem, so could this be rewritten to work as:

      QListView#menuListView QListViewItem {

      ?

      raven-worxR 1 Reply Last reply
      0
      • JonBJ JonB

        @raven-worx
        Given what you've said (I've noted before what you've said about QSS! :) ), an item in a QListViewis of class QListViewItem, so could this be rewritten to work as:

        QListView#menuListView QListViewItem {

        ?

        raven-worxR Offline
        raven-worxR Offline
        raven-worx
        Moderators
        wrote on last edited by
        #4

        @JonB said in Strange stylesheet behavior with QListView::item:

        an item in a QListViewis of class QListViewItem, so could this be rewritten to work as

        no, stylesheets get only applied/inherited to QWidgets.

        --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
        If you have a question please use the forum so others can benefit from the solution in the future

        1 Reply Last reply
        0
        • raven-worxR raven-worx

          @qwasder85 said in Strange stylesheet behavior with QListView::item:

          QListView#menuListView::item {
          padding-left: 10;
          }

          Basically this syntax should be correct, but unfortunately Qt stylesheet parsing isn't all the time.

          Just for testing: does style rule get applied when you remove the objectname selector part?

          qwasder85Q Offline
          qwasder85Q Offline
          qwasder85
          wrote on last edited by
          #5

          @raven-worx Same behavior without the object name.

          raven-worxR 1 Reply Last reply
          0
          • qwasder85Q qwasder85

            @raven-worx Same behavior without the object name.

            raven-worxR Offline
            raven-worxR Offline
            raven-worx
            Moderators
            wrote on last edited by
            #6

            @qwasder85
            When do you set the stylesheet exactly?

            --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
            If you have a question please use the forum so others can benefit from the solution in the future

            qwasder85Q 1 Reply Last reply
            0
            • raven-worxR raven-worx

              @qwasder85
              When do you set the stylesheet exactly?

              qwasder85Q Offline
              qwasder85Q Offline
              qwasder85
              wrote on last edited by
              #7

              @raven-worx said in Strange stylesheet behavior with QListView::item:

              @qwasder85
              When do you set the stylesheet exactly?

              I set it application-wide in the main.

              1 Reply Last reply
              0
              • mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #8

                Hi
                It works for me on win 10, Qt 5.10
                alt text
                Stylesheet applied directly on listview

                qwasder85Q 1 Reply Last reply
                2
                • mrjjM mrjj

                  Hi
                  It works for me on win 10, Qt 5.10
                  alt text
                  Stylesheet applied directly on listview

                  qwasder85Q Offline
                  qwasder85Q Offline
                  qwasder85
                  wrote on last edited by
                  #9

                  @mrjj Sorry, I don't see the relevance.
                  Have you tried applying the stylesheet I posted to a listview directly? Because this doesn't work either in my case.
                  Did you post a wrong screenshot by any chance?

                  mrjjM 1 Reply Last reply
                  0
                  • qwasder85Q qwasder85

                    @mrjj Sorry, I don't see the relevance.
                    Have you tried applying the stylesheet I posted to a listview directly? Because this doesn't work either in my case.
                    Did you post a wrong screenshot by any chance?

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

                    Hi
                    It shows that ::item also works with # selector as
                    i apply the gradient with style sheet as seen in shot.

                    I was not sure if padding would be visible easy in icon mode
                    so i used grad instead.

                    so maybe the ::item do not support
                    padding-left

                    I will try that directly tonight.

                    qwasder85Q 1 Reply Last reply
                    0
                    • mrjjM mrjj

                      Hi
                      It shows that ::item also works with # selector as
                      i apply the gradient with style sheet as seen in shot.

                      I was not sure if padding would be visible easy in icon mode
                      so i used grad instead.

                      so maybe the ::item do not support
                      padding-left

                      I will try that directly tonight.

                      qwasder85Q Offline
                      qwasder85Q Offline
                      qwasder85
                      wrote on last edited by qwasder85
                      #11

                      @mrjj It definitely supports padding, it does so in the "selected" and "hover" states without any issue. I can also eliminate a conflict with inheritance, since the behavior stays the same when I deactivate my application-wide stylesheet and set it for the table view directly.

                      1 Reply Last reply
                      0
                      • webzoidW Offline
                        webzoidW Offline
                        webzoid
                        wrote on last edited by
                        #12

                        @qwasder85 I also can't get your stylesheet to apply to a QListView however, as a "hack", if you use border-left:10px solid transparent, you should get the padding you need. I know it's not right and it's not pretty but it works.

                        qwasder85Q 1 Reply Last reply
                        1
                        • webzoidW webzoid

                          @qwasder85 I also can't get your stylesheet to apply to a QListView however, as a "hack", if you use border-left:10px solid transparent, you should get the padding you need. I know it's not right and it's not pretty but it works.

                          qwasder85Q Offline
                          qwasder85Q Offline
                          qwasder85
                          wrote on last edited by qwasder85
                          #13

                          @webzoid haha, I'll keep it in mind.

                          So, this is apparently a bug? I don't see where I did something wrong within the stylesheet.

                          webzoidW 1 Reply Last reply
                          0
                          • qwasder85Q qwasder85

                            @webzoid haha, I'll keep it in mind.

                            So, this is apparently a bug? I don't see where I did something wrong within the stylesheet.

                            webzoidW Offline
                            webzoidW Offline
                            webzoid
                            wrote on last edited by
                            #14

                            @qwasder85 It would indeed appear to be a bug.

                            Your stylesheet seems correct and I would expect the padding-left to be applied as per your CSS however in this instance (and bizarrely, only when hovering) it doesn't get applied.

                            Maybe raise it as a bug through the official channels?

                            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