Ich habe versucht das Frame mit der isVisible() Methode des QWidget unsichtbar zu machen, jedoch vermute ich dass man das QFrame dann noch neu zeichnen müsste, weiss jedoch nicht wie
QFrame austauschen
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
QFrame austauschen
Ich möchte eine Art Tabs realisieren. Das heisst ich möchte per Event ein QFrame löschen / ausbleden und ein anderes an selber Stelle sichtbar machen.
Ich habe versucht das Frame mit der isVisible() Methode des QWidget unsichtbar zu machen, jedoch vermute ich dass man das QFrame dann noch neu zeichnen müsste, weiss jedoch nicht wie
!
Ich habe versucht das Frame mit der isVisible() Methode des QWidget unsichtbar zu machen, jedoch vermute ich dass man das QFrame dann noch neu zeichnen müsste, weiss jedoch nicht wie
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
Ok, ich werde es mal versuchen, scheint genau das zu sein, was ich brauche.macman hat geschrieben:Nimm QStackedWidget, für sowas ist es da.
Eine weitere Frage:
Ist es möglich in einer Klasse, welche vom QFrame erbt ein QPushButton zu erstellen, welcher die Klasse in welcher er sich befindet als Argument übergeben wird?
Wenn ich es wie folgt mache und parent übergebe ist der Button dann fix und kann nicht gedrückt werden:
Code: Alles auswählen
EditorFrame::EditorFrame(QWidget *parent) : QFrame(parent)
{
setFrameShape(QFrame::StyledPanel);
setFrameShadow(QFrame::Raised);
pushButton = new QPushButton(parent);
pushButton->setObjectName(QString::fromUtf8("pushButton"));
pushButton->setGeometry(QRect(20, 10, 75, 24));
pushButton->setText("on the laksd");
}-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
Ich habe dem QStackedWidget jetzt 2 Widgets hinzugefügt und kann auch welchseln jedoch über den Slot funktioniert es wiefolgt nicht:
ob ich jetzt 1 oder 0 eintrage, das Widget ändert nicht!

Code: Alles auswählen
QObject::connect(btn1, SIGNAL(clicked()), mainFrame, SLOT(setCurrentIndex(1)));
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
Mit Hilfe von Esleborn habe ich nun folgendes erstellt:
TabButton.h
TabButton.cpp
so kann dem Button ein int übergeben werden, der dann beim conntecten auf das QStackedWidget verwendet werden kann.
Leider scheint noch ein Fehler im Code enthalten zu sein, denn ich erhalte die Message
TabButton.h
Code: Alles auswählen
#include <QPushButton>
class TabButton : public QPushButton
{
Q_OBJECT
public:
TabButton(QWidget *parent=0, int nbr=0);
signals:
void clicked(int);
private slots:
void Clicked();
private:
int intNbr;
};Code: Alles auswählen
#include "TabButton.h"
TabButton::TabButton(QWidget *parent, int nbr) : QPushButton(parent)
{
intNbr = nbr;
QObject::connect(this, SIGNAL(clicked(bool)), this, SLOT(Clicked()));
}
void Clicked()
{
emit clicked(intNbr);
}
Leider scheint noch ein Fehler im Code enthalten zu sein, denn ich erhalte die Message
Code: Alles auswählen
TabButton.cpp:21: error: `intNbr' undeclared (first use this function)Code: Alles auswählen
void TabButton::Clicked()
{
emit clicked(intNbr);
}sollte vllt besser tun
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
Hmmm... den Fehler habe ich gestern auch noch entdeckt und auch verbessert, hat jedoch nicht viel geholfen, da ich weitere Fehlermeldungen erhielt.Esleborn hat geschrieben:Code: Alles auswählen
void TabButton::Clicked() { emit clicked(intNbr); }
sollte vllt besser tun
Vorhin habe ich die Project und Make Datei gelöscht und neu erstellt & dann kompiliert UND ES FUNKTIONIERT