Results 1 to 20 of 20

Thread: Hide the branches in a QTreeWidget

  1. #1
    Join Date
    Jan 2006
    Location
    Catalonia
    Posts
    266
    Thanks
    44
    Thanked 2 Times in 2 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Hide the branches in a QTreeWidget

    Hi all, as the post says I want to hide the branches in a QTreeWidget. I attach an image showing the result that I want. I think that the solution could be calling QTreeView::drawBranches but I don't know how to make it. Anybody knows it?

    Thanks.
    Attached Images Attached Images

  2. #2
    Join Date
    Feb 2006
    Location
    Oslo, Norway
    Posts
    6,264
    Thanks
    36
    Thanked 1,519 Times in 1,389 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Symbian S60 Maemo/MeeGo

    Default Re: Hide the branches in a QTreeWidget

    You mean expanding/collapsing?
    void QTreeWidget::setItemExpanded ( const QTreeWidgetItem * item, bool expand)

  3. #3
    Join Date
    Jan 2006
    Location
    Catalonia
    Posts
    266
    Thanks
    44
    Thanked 2 Times in 2 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Hide the branches in a QTreeWidget

    Quote Originally Posted by jpn
    You mean expanding/collapsing?
    No, I mean not to draw the branches joining each item in the tree view with its parent

  4. #4
    Join Date
    Feb 2006
    Location
    Oslo, Norway
    Posts
    6,264
    Thanks
    36
    Thanked 1,519 Times in 1,389 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Symbian S60 Maemo/MeeGo

    Default Re: Hide the branches in a QTreeWidget

    Quote Originally Posted by SkripT
    No, I mean not to draw the branches joining each item in the tree view with its parent
    Ah of course, sorry for being so thoughtless.

    Yes, reimplementing drawBranches() and leave it empty.
    Last edited by jpn; 7th March 2006 at 13:30.

  5. #5
    Join Date
    Jan 2006
    Location
    Catalonia
    Posts
    266
    Thanks
    44
    Thanked 2 Times in 2 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Hide the branches in a QTreeWidget

    Many thanks jpn

  6. #6
    Join Date
    Jan 2006
    Location
    Catalonia
    Posts
    266
    Thanks
    44
    Thanked 2 Times in 2 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Hide the branches in a QTreeWidget

    Hi again, I've reimplemented drawBranches leaving it empty and the branches are not drawn (as I wanted), the problem is that the icons to expand/colapse the tree items aren't neither painted but in the example that I have attached are painted. Anybody knows how to force to paint them withoyt having to draw the branches?
    Last edited by SkripT; 8th March 2006 at 10:14.

  7. #7
    Join Date
    Feb 2006
    Location
    Oslo, Norway
    Posts
    6,264
    Thanks
    36
    Thanked 1,519 Times in 1,389 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Symbian S60 Maemo/MeeGo

    Default Re: Hide the branches in a QTreeWidget

    In that case you most probably need to implement your own style which can draw that kind of primitive elements the way you want (QStyle::PE_IndicatorBranch).

  8. #8
    Join Date
    Jan 2006
    Location
    Catalonia
    Posts
    266
    Thanks
    44
    Thanked 2 Times in 2 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Hide the branches in a QTreeWidget

    Ok thanks jpn, but, and sorry for my ingnorance, how could I call to paint the QStyle::PE_IndicatorBranch directly (if it's possible to do it)?

  9. #9
    Join Date
    Feb 2006
    Location
    Oslo, Norway
    Posts
    6,264
    Thanks
    36
    Thanked 1,519 Times in 1,389 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Symbian S60 Maemo/MeeGo

    Default Re: Hide the branches in a QTreeWidget

    Mom, look what I did!! Heh, this was kinda interesting so I gave it a shot. Never played too much with styles...

    Create an instance of the attached style and set it for your treewidget (QWidget::setStyle(QStyle*)).
    And remember to remove the empty drawBranches() from your treewidget..
    Attached Images Attached Images
    Attached Files Attached Files

  10. The following 3 users say thank you to jpn for this useful post:

    gfunk (30th May 2006), josh (3rd April 2007), WinchellChung (6th June 2007)

  11. #10
    Join Date
    Jan 2006
    Location
    Catalonia
    Posts
    266
    Thanks
    44
    Thanked 2 Times in 2 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Hide the branches in a QTreeWidget

    Looks cool jpn, it's exactly what I need. Thanks a lot one more time.
    Last edited by SkripT; 8th March 2006 at 18:19.

  12. #11
    Join Date
    Apr 2007
    Posts
    1
    Thanks
    1
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Re: Hide the branches in a QTreeWidget

    This helped us too, thanks.

  13. #12
    Join Date
    Sep 2012
    Posts
    10
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Hide the branches in a QTreeWidget

    jpn,

    this is really good and exactly what i wanted so thanks for this. is there anyway to modify your code so that the collapse/uncollapse indicator is drawn in the style seleted for the app? say for instance, i am running on KDE and want the indicator to be the same as what is used in all the other apps - is that possible?

  14. #13
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,359
    Thanks
    3
    Thanked 5,015 Times in 4,792 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: Hide the branches in a QTreeWidget

    You can always use a style proxy (QProxyStyle).
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  15. #14
    Join Date
    Sep 2012
    Posts
    10
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Hide the branches in a QTreeWidget

    but his current implementation of drawPrimitive draws the windows standard + and - for collapsed/expanded. how to modify the drawPrimitive function to draw the appropriate indicator? do you think it would be easier to simply set and icon with on/off properties and display those instead but this would give a common look on all platforms.

  16. #15
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,359
    Thanks
    3
    Thanked 5,015 Times in 4,792 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: Hide the branches in a QTreeWidget

    Quote Originally Posted by sawarsi View Post
    how to modify the drawPrimitive function to draw the appropriate indicator?
    You ask the style for the primitive.
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  17. #16
    Join Date
    Sep 2012
    Posts
    10
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Hide the branches in a QTreeWidget

    can you send a line of code that would do that? i am not sure what to query for.

  18. #17
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,359
    Thanks
    3
    Thanked 5,015 Times in 4,792 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: Hide the branches in a QTreeWidget

    Quote Originally Posted by sawarsi View Post
    can you send a line of code that would do that?
    I left it in my other pants

    And seriously, Qt's source code is available for download, take it, see what QTreeView does to draw the branches and you'll see the exact calls you need to make.
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  19. #18
    Join Date
    Jan 2008
    Location
    Alameda, CA, USA
    Posts
    5,230
    Thanks
    302
    Thanked 864 Times in 851 Posts
    Qt products
    Qt5
    Platforms
    Windows

    Default Re: Hide the branches in a QTreeWidget

    I left it in my other pants
    Oh, I hate it when that happens. You get all the way in to work, reach in your pocket for that line of code you wrote last night at home, and then you realize you wore a different pair of pants yesterday.

  20. #19
    Join Date
    Sep 2012
    Posts
    10
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Hide the branches in a QTreeWidget

    it's ok thought i would ask before diving into the code. qt has changed a lot since 1998-2001 when i used it extensively for commercial and non-commercial use and the code base has become so big it is hard to figure things out especially when there is multiple inheritance. it sure was a lot simpler back then to get the desired results by studying the code.

  21. #20
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,359
    Thanks
    3
    Thanked 5,015 Times in 4,792 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: Hide the branches in a QTreeWidget

    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


Similar Threads

  1. resizing a QTreeWidget
    By drhex in forum Qt Programming
    Replies: 6
    Last Post: 27th October 2006, 22:32

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.