[workaround] QToolButton ohne "Rahmen"

Alles rund um die Programmierung mit Qt
Antworten
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

[workaround] QToolButton ohne "Rahmen"

Beitrag von C_R »

Hallo,

weiß jemand von euch, wie man den Rahmen bei einem QToolButton ausstellt (als wär man mit der Maus auf dem Button)? So wie es eine QAction in einer QToolBar macht.. Hab die Doku gelesen rauf und runter und finde nix. Qt::transparent als Farbe einstellen geht auch nicht, da sagt der Compiler, dass es transparent nicht gibt (im Gegensatz zur Doku)..
Zuletzt geändert von C_R am 11. Mai 2007 12:51, insgesamt 1-mal geändert.
andy72
Beiträge: 39
Registriert: 5. April 2007 07:51

Beitrag von andy72 »

Versuch es mal mit setFrameStyle(QFrame::NoFrame) - QToolButton kommt vom QAbstractButton und der wiederrum vom QFrame - hast also alle Klassenmethoden bis zum QWidget runter ;)
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

QToolButton kennt setFrameStyle nicht. Ist nicht von QFrame abgeleitet sondern von QWidget.
andy72
Beiträge: 39
Registriert: 5. April 2007 07:51

Beitrag von andy72 »

Hm, habe ich dann wohl falsch in der Doku gelesen - sorry dafür.
Was noch bleibt ist evtl. ja ein CSS ?

QToolButton *btn = QToolButton();
btn->setStyleSheet( "QToolButton { border: 0;}");

Allerdings ist das glaube ich dann leider Systemweit innerhalb der Anwendung oder des Fensters :(
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

hm muss man da evtl was an der Project-Datei drehen? Kenn mich nicht mit den Stylesheets aus, allerdings sagt er sowohl bei einem Widget als auch bei dem toolbutton, dass er setstylesheet nicht kennt.

imho war das nen 4.2 Feature oder? Ich nutze 4.1.1 :?
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

In eine tableview habe ich es so gemacht... im model

Code: Alles auswählen

pushButton = new QPushButton(this);
    pushButton->setText(tr("Nr.0 Action"));
    pushButton->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
    pushButton->setFlat(true);
.........................
speack português italiano deutsch english castellà qt
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Ja werde wohl den PushButton nehmen, der ToolButton kanns ja scheinbar nicht oO
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Mit dem klappts auch 1a..
andy72
Beiträge: 39
Registriert: 5. April 2007 07:51

Beitrag von andy72 »

Der Nachteil beim PushButton ist ja eigentlich nur, dass er keine Popups erlaubt, sprich also kannst Du - glaube ich - kein QMenu anbinden.

ABER:
Man man kann das QMenu dann notfalls über die QWidget-Funktion
addAction() erzeugen lassen und dann über setContextMenuPolicy() die Option "Qt::ActionsContextMenu" angeben.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Ich brauche kein Menü, von daher passts, allerdings hatte ich es vorher vor, mit QAction zu machen. Doch beim aufrufen von addAction hat er mir die Buttons eine Ebene höher (in den Splitter) geworfen..
Antworten