How to add icon without a text into QListWidget?



  • I want to display icon in QListWidget without a text. I set the text to empty string and to size 1. When I select theicon I see an empty square below the icon on the text place.
    How can I get rid of this empty space?

    IL



  • @IL
    What happens if you only set the icon?

    QListWidgetItem *i;
    i->setIcon(youricon);
    


  • @the_
    Same same!



  • Are you using stylsheets? Did you use listWidget->setViewMode(QListView::IconMode); ? Can you provide sample code of the problem?



  • @elveatles
    Hi,
    Yes I do using style-sheets, and I am not familiar with a way that style-sheets can resolve this issue.
    Icon mode set the text beneath the icon while list-mode set the text beside the icon.
    In both cases I have the same problem.
    I am using QtCreator, creating ListWidget and add items, my code is very basic.
    I can provide code from the ui_mainwindow.h if you point me to something specific.

    Thanks,
    IL



  • Stylesheets can cause this kind of problem if you are using padding or margin. If you try to remove the stylesheet and create your QListWidgetItems the way "the_" suggested, it should work. If not there must be something I'm not thinking of.



  • @elveatles
    Hi and thanks,
    I have removed the style-sheet and create the item with icon only but it still save place for the text.
    I am a bit confused, I don't find any solution for that, something that looks trivial seems to be an issue.
    I will be very happy to know that someone has a solution for that.

    Thanks again,
    IL



  • Just another (maybe crazy and/or stupid) idea...
    Why not set a custom widget for the QListWidgetItem that looks as you expect it to look like instead of putting an icon to the QListWidgetItem ?



  • @the_
    What do you mean by saying custom widget?



  • @IL
    you can add a widget to an item. So just create a for example frame that contains your icon and add it to the list item.

    QListWidget *list = new QListWidget(this);
    //...
    QFrame *custom = new QFrame;
    //add whatever you need to the frame
    QListWidgetItem *i = new QListWidgetItem;
    list->addItem(i);
    list->setWidgetItem(i,custom);
    

    I used this for a list where each item needed several buttons to get for example detailed information about the item or delete the item from the list with one click


Log in to reply