ToolBar mit mind. 2 Spalten
ToolBar mit mind. 2 Spalten
Hallo,
gibt es eine Möglichkeit eine QToolBar mit 2, oder mehr, Spalten zu definieren?
Ich möchte gerne soetwas haben wie bei Paint die Werkzeugleiste.
Dankbar für Hilfe.
MfG
gibt es eine Möglichkeit eine QToolBar mit 2, oder mehr, Spalten zu definieren?
Ich möchte gerne soetwas haben wie bei Paint die Werkzeugleiste.
Dankbar für Hilfe.
MfG
Okay, habe mir das mal angeschaut.
Es sieht nicht danach aus was ich brauche.
In meinem Fall habe ich ein MDI-Area, und an der Seite soll eben so eine Werkzeugleiste wie in MS Paint sein. Ach ja, ich möchte diese Werkzeugleiste zur Laufzeit ggf. noch erweitern.
Habe mal die QToolBox mir angeschaut, das ist vlt. noch am ehesten was.
Ist aber blöd das ich dort über QWidgets gehen muss, ich hätte es halt gerne mit QAction gehabt, wäre ja einfacher...
Naja, bin trotzdem offen für weiter Vorschläge!
Es sieht nicht danach aus was ich brauche.
In meinem Fall habe ich ein MDI-Area, und an der Seite soll eben so eine Werkzeugleiste wie in MS Paint sein. Ach ja, ich möchte diese Werkzeugleiste zur Laufzeit ggf. noch erweitern.
Habe mal die QToolBox mir angeschaut, das ist vlt. noch am ehesten was.
Ist aber blöd das ich dort über QWidgets gehen muss, ich hätte es halt gerne mit QAction gehabt, wäre ja einfacher...
Naja, bin trotzdem offen für weiter Vorschläge!
Ich denke schon dass das FLowLayout das ist was du haben willst!
Es reagiert dynamisch auf Größenänderung. Wir es breiter schaut es ob es die Zeilen neu anordnen kann, wird es in einer Zeile zu eng wird auch neu angeordnet. Wenn nur ToolButtons drin liegen (die ja eine fixe Breite haben) heist das für dich dass du deine "ToolBar" vergrößern kannst und je nach Breite mehr oder weniger Spalten hast. Du kannst es auch ohne weiteres nach oben legen (wenn es ein DockWidget ist), dann hast du halt nicht große Spalten sondern große Zeilen - erledigt das Layout selber!
Wenn du tatsächlich Unflexibilität schätzt und fix nur zwei Spalten haben willst, dann nimm ein QGridLayout, merk dir die Anzahl der Buttons die drin liegen - dann weißt du an welcher Position du dynamisch das nächste Item einsetzen kannst! Aber fixe Breite und nicht größenveränderlich ist so was von altertümlich
(sry)
Es reagiert dynamisch auf Größenänderung. Wir es breiter schaut es ob es die Zeilen neu anordnen kann, wird es in einer Zeile zu eng wird auch neu angeordnet. Wenn nur ToolButtons drin liegen (die ja eine fixe Breite haben) heist das für dich dass du deine "ToolBar" vergrößern kannst und je nach Breite mehr oder weniger Spalten hast. Du kannst es auch ohne weiteres nach oben legen (wenn es ein DockWidget ist), dann hast du halt nicht große Spalten sondern große Zeilen - erledigt das Layout selber!
Wenn du tatsächlich Unflexibilität schätzt und fix nur zwei Spalten haben willst, dann nimm ein QGridLayout, merk dir die Anzahl der Buttons die drin liegen - dann weißt du an welcher Position du dynamisch das nächste Item einsetzen kannst! Aber fixe Breite und nicht größenveränderlich ist so was von altertümlich
Ist aber blöd das ich dort über QWidgets gehen muss, ich hätte es halt gerne mit QAction gehabt, wäre ja einfacher...
Klingt ned so als ob sich das beisst ?In applications many common commands can be invoked via menus, toolbar buttons, and keyboard shortcuts. Since the user expects each command to be performed in the same way, regardless of the user interface used, it is useful to represent each command as an action.
Schau dir mal QDockWidget an, im Zusammenhang mit QMainwindow.
Um Actions wiederum auf nen widget darstellen zu koennen, ohne Menues oder fertige Toolbars zu verwenden, ist QToolBarButton ne mögliche bruecke. der Interagiert mit actions und laesst sich schoen aufm widget layouten.
Damit kann man so Werkzeugleisten / Fenster zusammenschrauben, wie man es von gimp und anderen kennt.
Ciao ....
QToolBarButon gibt es nur leider nichtRHBaum hat geschrieben:Um Actions wiederum auf nen widget darstellen zu koennen, ohne Menues oder fertige Toolbars zu verwenden, ist QToolBarButton ne mögliche bruecke. der Interagiert mit actions und laesst sich schoen aufm widget layouten.
Am einfachsten:
QToolButton + QToolButton::setDefaultAction().
Da das Dingens in Paint ja ein Tool-Selector ist und man eigentlich nur mit einem einzigen Tool (also nicht mehrere gleichzeitig) arbeiten kann, wäre zusätzlich noch eine QButtonGroup angebracht.
Hier mal ein Beispielcode:
Code: Alles auswählen
void addAction(QAction *action)
{
if (!action) return;
QWidget *wdg=...;
FlowLayout *layout=static_cast<FlowLayout*>(wdg->layout());
QToolButton *button=new QToolButton(wdg);
button->setMinimumSize(32, 32);
button->setMaximumSize(32, 32);
button->setAutoRaise(true);
button->setIconSize(QSize(32, 32));
button->setDefaultAction(action);
layout->addWidget(button);
}
- Dateianhänge
-
- toolbar.png (19.69 KiB) 4921 mal betrachtet