Hallo zusammen,
ich sitze an einem (vermutlich primitiven) Problem, welches mich allerdings gerade in den Wahnsinn treibt:
Eigentlich will ich nur ein paar Striche in ein QWidget zeichnen. Früher (ohne QDesigner) war das kein Problem - einfach eine neue Klasse erstellen welche von QWidget erbt und die QPaintEvent Funktion überschreiben, anschließend diese Klasse in die eigentliche GUI einbinden und gut ist es. Jetzt habe ich ein ui file von dem ich erbe und in welchem ich die QPaintEvent Funktion eines ihrer Member (das entsprechende QWidget) überschreiben müsste.
Was nun?
Grüße,
Thomas
ui file und QPaintEvent -> Problem!
Dein Gefühl hat dich nicht getäuscht: es ist einfach
Variante 1: ohne Designer
Der Designer ist ja nur ein Hilfsmittel. Du kannst dein mittels "setupUi(this)" erstelltes Widget ja einfach im Code erweitern (also "wie früher" einfach im Konstruktor dynamisch erstellen und ins Layout einfügen).
Variante 2: im Designer mit "promote"
Du kannst im Designer auch eigene Klassen einbinden:
http://doc.qt.nokia.com/latest/designer ... ng-widgets
Variante 3: als Designer-Plugin
Falls das neue Widget immer wieder benötigt wird, kann daraus ein eigenes Plugin gemacht werden. Dann kann es wie die Qt-Widgets per Drag'n'Drop platziert werden.
http://doc.qt.nokia.com/latest/designer ... dgets.html
hth!
Variante 1: ohne Designer
Der Designer ist ja nur ein Hilfsmittel. Du kannst dein mittels "setupUi(this)" erstelltes Widget ja einfach im Code erweitern (also "wie früher" einfach im Konstruktor dynamisch erstellen und ins Layout einfügen).
Variante 2: im Designer mit "promote"
Du kannst im Designer auch eigene Klassen einbinden:
http://doc.qt.nokia.com/latest/designer ... ng-widgets
Variante 3: als Designer-Plugin
Falls das neue Widget immer wieder benötigt wird, kann daraus ein eigenes Plugin gemacht werden. Dann kann es wie die Qt-Widgets per Drag'n'Drop platziert werden.
http://doc.qt.nokia.com/latest/designer ... dgets.html
hth!
Naja, das "setupUi" in Kombination mit eigenem Code. Es hindert dich ja niemand daran, nach dem Initialisieren mit "setupUi()" noch eigene Widgets zu addieren:
Kommt halt drauf an, wie du das Widget im Designer aufgebaut hast (Layouts usw.), aber du erkennst evt. die Idee..
Aber die "promote"-Variante ist eh sauberer
hth!
Code: Alles auswählen
// im CTor:
setupUi(this);
mSpecialButton = new MySpecialButton();
mLayout->addWidget(mSpecialButton);
Aber die "promote"-Variante ist eh sauberer
hth!