Change height of buttons inside QStringListModel



  • Hi there!

    I have many buttons inside a List View, and in order to get a scroll bar when needed, I put all the buttons inside a QStringListModel like this:

    @
    for(int i=0; i<list.count(); i++)
    {
    button = new QPushButton;
    button->setText(list.at(i));
    index=model->index(i, 0, QModelIndex());
    listView->setIndexWidget(index, button);
    group->addButton(button);
    group->setId(button, i);
    }
    @

    The things is when I try to change the height of the button because I think its too small, the buttons overlap each other. I have no idea how I can resolve this, maybe changing the Model I insert my buttons in, or adding some kind of spacing between the buttons... I would appreciate any help.

    Btw I try to change the size of my buttons like this:

    @
    button->setMinimumHeight(23);
    button->setMaximumHeight(23);
    @



  • try to apply stylesheet for buttons padding like that



  • I tried this, but yet it doesnt work.

    @
    button->setStyleSheet("min-height: 23px; margin-top: 23px; margin-bottom: 10px;");
    @

    Still thank you for the answer!


  • Lifetime Qt Champion

    Hi,

    Styling the button won't help since it's not the button size that determines the cell height. Are you sure you need a QListView if you are creating a QPushButton for each entry in the model ?



  • Hi,
    I think I do. I need different buttonGroups inside the main window and the only thing I could think of was putting them inside a QListView, but I dont know if its correct.

    Are you guys sure that I use the correct model? QStringListModel is the only one I found, but maybe there is another that suits better.

    Anyways thenk you for the answer!


  • Lifetime Qt Champion

    Then first thing, why do you need a QStringListModel ?



  • Because I couldnt find any other way to automatically add a scrollbar when adding buttons to the QListView


  • Lifetime Qt Champion

    That's not really related, the QStringListModel can be used to feed a QListView, but I don't see how it's related to generating your buttons e.g. where does your data come from to fill the QStringListModel ?

    Anyway since it seems that you have to create a long widget full of buttons, you might be interested in QScrollArea



  • I read a file from which I get some names that I add to the QStringListModel and those names inside the QStringListModel become the text inside the buttons, and the buttons are in the QListView.

    I already tried doing that but got nowhere.


  • Lifetime Qt Champion

    The simple way would be:
    QWidget -> QVBoxLayout
    fill the layout with buttons and set that widget in a QScrollArea


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.