[solved]How to center toolbuttons in horizontal toolbar?



  • I have a horizontal toolbar and im trying to get the buttons to center but i cant get it right.
    I am also very new to QT and programming.

    This is what i have now its aligned to the left.

    @void BitcoinGUI::createToolBars()
    {
    QToolBar *toolbar = addToolBar(tr("Tabs toolbar"));
    toolbar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    toolbar->addAction(overviewAction);
    toolbar->addAction(sendCoinsAction);
    toolbar->addAction(receiveCoinsAction);
    toolbar->addAction(historyAction);
    toolbar->addAction(addressBookAction);
    @


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    What do you mean by center ? On the tool bar itself ? In the widget ?



  • [quote author="SGaist" date="1400531931"]Hi and welcome to devnet,

    What do you mean by center ? On the tool bar itself ? In the widget ?[/quote]

    Hi! Thank you!, Yes on the toolbar itself i have toolbuttons, but they are aligned to the left now, i would like to have them in the center of the toolbar. Its a horizontal toolbar/menu.


  • Lifetime Qt Champion

    IIRC there's no such thing out of the box. However you can set two "spacer" QWidgets, one on the left and one on the right side of your actions.



  • [quote author="SGaist" date="1400537649"]IIRC there's no such thing out of the box. However you can set two "spacer" QWidgets, one on the left and one on the right side of your actions.[/quote]

    I tried that and set them to maximize, but somehow the one on the left maxed and pushed everything to the right. And the right one did nothing?
    I am sorry for asking such noob questions.



  • i used
    @ QWidget *spacerWidget = new QWidget(this);
    toolbar->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
    spacerWidget->setVisible(true);@

    and before and after the actions:
    @toolbar->addWidget(spacerWidget);@


  • Lifetime Qt Champion

    You should set the policy on the widgets, not the toolbar



  • oh wow, so i just change it into spacerWidget->SetSizePolicy ?
    Im gonna try this right away.



  • [quote author="SGaist" date="1400570992"]You should set the policy on the widgets, not the toolbar[/quote]
    i tried this but it didnt work..am i still doing something wrong?

    @void BitcoinGUI::createToolBars()
    {
    QToolBar *toolbar = addToolBar(tr("Tabs toolbar"));
    QWidget *spacerWidget = new QWidget(this);
    spacerWidget>setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred);
    spacerWidget->setVisible(true);
    toolbar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    toolbar->addWidget(spacerWidget);
    toolbar->addAction(overviewAction);
    toolbar->addAction(sendCoinsAction);
    toolbar->addAction(receiveCoinsAction);
    toolbar->addAction(historyAction);
    toolbar->addAction(addressBookAction);
    toolbar->addWidget(spacerWidget);
    @


  • Lifetime Qt Champion

    You need two spacer widgets, otherwise you are just moving it from left to right



  • [quote author="SGaist" date="1400707308"]You need two spacer widgets, otherwise you are just moving it from left to right[/quote]

    So i cannot use toolbar->addWidget(spacerWidget);
    twice?
    I have to make like a spacerwidget2?


  • Lifetime Qt Champion

    No you can't, addWidget doesn't mean "copy that widget in the toolbar" (you can't copy widgets by the way nor any QObject derived class)

    So yes you have to create another spacer widget



  • Thank you so much for all of your time and help! I really appreciate it.


  • Lifetime Qt Champion

    You're welcome !

    Did you got it working ?



  • [quote author="SGaist" date="1400775959"]You're welcome !

    Did you got it working ?[/quote]
    Yes it works perfectly


  • Lifetime Qt Champion

    Nice ! Then please update the thread title prepending [solved] so other forum users may know a solution has been found :)


Log in to reply
 

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