Hallo,
ich habe folgendes Problem:
Ich arbeite mit QT4 und Visual Studio 2005; ich habe zwei eigene Klassen die jeweils von QFrame abgeleitet sind. Bei der ersten Klasse gibt es einen OK-Button. Wenn dieser gedrückt wird, dann soll die zweite Klasse an der selben Stelle eingebelendet werden wo die erste Klasse war. Bei der zweiten Klasse gibt es dann einen Zurück-Button. Wenn dieser Button gedrückt wird, soll wieder die erste Klasse eingeblendet werden. Das habe ich dann auch irgendwann hinbekommen. Mein Problem ist jetzt aber, dass auf dem zweiten Frame die Anzeige nicht aktualisiert wird. Ich habe es auch schon mit update() und repaint() probiert. Aber er malt es einfach nicht neu.
Kann mir da jemand irgend einen Tip geben?
Probleme mit eigenen Widgets
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
OK, ich versuche mal mich etwas genauer auszudrücken.
Ich habe bereits ein StackedLayout mit zwei Widgets. Beides sind eigene Klassen. Ich lasse standardmäßig das erste Widget einblenden. Wenn man dann auf einen OK Knopf drückt wird das zweite eingeblendet. Das Problem liegt nun darin, dass beim zweiten Widget die Anzeige nicht von alleine aktualisiert wird. Also, wenn man z.B. einen Button drückt, wird der normalerweise solange er gedrückt ist invertiert dargestellt. Das funktioniert hier eben nicht. Die zugehörige Funktion wird aber aufgerufen. Ich habe schon alles erdenkliche probiert mit update() und repaint(). Aber das funktioniert trotzdem nicht. Wenn man aber die ALT-Taste drückt, wird der Bildschirm aktualisiert. Ich habe nun keine Ahnung mehr, was ich noch anstellen soll, damit Windows mir meinen Bildschirm neu malt.
Ich hänge mal meine beiden Klassen an und den Teil mit dem StackedLayout.
Dirk.
Widget 1:
-----------
HoistSelection::HoistSelection(QWidget *parent, Qt::WindowFlags f) :
QWidget(parent,f)
{
QString text,text2;
// Zeiger initialisieren
scrollbar = NULL;
labelHoists = NULL;
labelSelected = NULL;
buttonOK = NULL;
buttonViewMode = NULL;
for ( int i = 0; i < 192; i++ ) {
buttonHoist = NULL;
}
sm = NULL;
for ( int i = 0; i < 2; i++ ) {
neighbour_classes = NULL;
}
hoistMove = NULL;
// Membervariablen initialisieren
lineoffset = 0;
viewMode = ZUGNUMMER;
numSelected = 0;
for ( NetID_t i = 0; i < 192; i++ ) {
selectedHoists = 0;
}
pageNumber = 0;
setGeometry(4,4,630,744);
setPalette(pal_normal);
setAutoFillBackground(true);
// Scrollbar anzeigen
scrollbar = new DPScrollBar(this);
scrollbar->setPosition(565,45);
scrollbar->setSize(60,552);
scrollbar->buttonScrollUp->hide();
connect(scrollbar->buttonScrollUp,SIGNAL(clicked()),this,SLOT(buttonScrollUpClicked()));
connect(scrollbar->buttonScrollDown,SIGNAL(clicked()),this,SLOT(buttonScrollDownClicked()));
scrollbar->show();
// Label fuer die verfuegbaren Zuege erzeugen
labelHoists = new QLabel(this);
labelHoists->setGeometry(5,5,620,30);
labelHoists->setPalette(pal_normal);
labelHoists->setFont(QFont(FONTTYPE,FONTSIZE-2));
labelHoists->setAlignment(Qt::AlignVCenter);
labelHoists->setText("Label1");
labelHoists->show();
// Label fuer die ausgewaehlten Zuege erzeugen
labelSelected = new QLabel(this);
labelSelected->setGeometry(5,605,620,30);
labelSelected->setPalette(pal_normal);
labelSelected->setFont(QFont(FONTTYPE,FONTSIZE-2));
text = text.number(numSelected);
text2 = text + trUtf8(" von ");
text = text.number(ControlParams.MaxNumberSelectHoistsAsync);
text2 = text2 + text + trUtf8(" Zügen ausgewählt.");
labelSelected->setText(text2);
labelSelected->setAlignment(Qt::AlignVCenter);
labelSelected->show();
// OK-Button erzeugen
buttonOK = new DPPushbutton("",this,0);
buttonOK->setGeometry(5,647,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonOK->setPalette(pal_green);
buttonOK->setText(trUtf8("OK"));
connect(buttonOK,SIGNAL(clicked()),this,SLOT(buttonOKClicked()));
buttonOK->hide();
// Umschaltung zwischen Steckstelle und Zugnummer
buttonViewMode = new DPPushbutton("",this,0);
buttonViewMode->setGeometry(620 - BUTTONWIDTH5,647,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonViewMode->setPalette(pal_normal);
buttonViewMode->setText(trUtf8("Auswahl nach\nZugnummer"));
buttonViewMode->setActive(false,FGCOLOR);
connect(buttonViewMode,SIGNAL(clicked()),this,SLOT(buttonViewModeClicked()));
buttonViewMode->show();
// SignalMapper fuer die Zugbuttons erstellen
sm = new QSignalMapper(this);
connect(sm,SIGNAL(mapped(int)),this,SLOT(buttonHoistClicked(int)));
// Buttons fuer die Zuege malen
for ( int i = 0; i < 192; i++ ) {
buttonHoist = new DPPushbutton("",this,0);
buttonHoist->setAutoFillBackground(true);
buttonHoist->setPalette(pal_normal);
buttonHoist->setActive(false,FGCOLOR);
buttonHoist->setFrameStyle(QFrame::Plain|QFrame::Box);
buttonHoist->setFont(QFont(FONTTYPE,FONTSIZE+1));
buttonHoist->setText("");
connect(buttonHoist[i],SIGNAL(clicked()),sm,SLOT(map()));
sm->setMapping(buttonHoist[i],i);
buttonHoist[i]->hide();
}
update();
}
Widget 2:
-----------
HoistMoveClass::HoistMoveClass(QWidget *parent) : QWidget(parent)
{
setGeometry(4,4,630,744);
setAutoFillBackground(true);
//+++ Zeiger initialisieren
buttonBack = NULL;
joystick = NULL;
for ( int i = 0; i < 192; i++ ) {
labelHoist[i] = NULL;
labelPosition[i] = NULL;
labelLoad[i] = NULL;
labelStatus[i] = NULL;
}
buttonMoveMode = NULL;
buttonGroupMode = NULL;
buttonDestination = NULL;
buttonTime = NULL;
buttonFreeMode = NULL;
buttonJustify = NULL;
//+++ Membervariablen initialisieren
lastEnableState = false;
Width = 630;
Height = 744;
numSelectedHoists = 0;
text = "";
for ( int i = 0; i < 192; i++ ) {
selectedHoists[i] = 0;
}
vMaxUp = 0;
vMaxDown = 0;
pageNumber = 0;
pageColor = FGCOLOR;
pal_pageColor = pal_normal;
pal_pageColorInvers = pal_normalInvers;
speed = 0;
lastSpeed = 0;
moveDir = MD_STOP;
lastMoveDir = MD_STOP;
groupMode = GM_GROUP;
moveMode = MM_ASYNC;
isVisible = false;
//+++ Fahrhebel erzeugen
joystick = new DPJoystick(this);
joystick->show();
//+++ Zurueck-Button erzeugen
buttonBack = new DPPushbutton("",this,0);
buttonBack->setGeometry(5,Height-BUTTONHEIGHT5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonBack->setPalette(pal_normal);
buttonBack->setText(tr("Zurück"));
buttonBack->setAutoFillBackground(true);
connect(buttonBack,SIGNAL(clicked()),this,SLOT(buttonBackClicked()));
buttonBack->show();
//+++ Label mit der Anzahl der angewaehlten Zuege anzeigen
labelSelectedHoists = new QLabel(this);
labelSelectedHoists->setGeometry(5,5,Width - 10, 25);
labelSelectedHoists->setPalette(pal_normal);
labelSelectedHoists->setFont(QFont(FONTTYPE,FONTSIZE-2));
labelSelectedHoists->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
text = text.number(numSelectedHoists);
if ( numSelectedHoists == 1 ) {
text = text + tr(" Zug angewählt.");
} else {
text = text + tr(" Züge angewählt.");
}
labelSelectedHoists->setText(text);
labelSelectedHoists->show();
//+++ Labels der Zuege anlegen
for ( int i = 0; i < 192; i++ ) {
labelHoist[i] = new QLabel(this);
labelHoist[i]->setPalette(pal_normal);
labelHoist[i]->setFont(QFont(FONTTYPE,FONTSIZE+1));
labelHoist[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelHoist[i]->setText("");
labelHoist[i]->hide();
labelPosition[i] = new QLabel(this);
labelPosition[i]->setPalette(pal_normal);
labelPosition[i]->setFont(QFont(FONTTYPE,FONTSIZE-4));
labelPosition[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelPosition[i]->setText("");
labelPosition[i]->hide();
labelLoad[i] = new QLabel(this);
labelLoad[i]->setPalette(pal_normal);
labelLoad[i]->setFont(QFont(FONTTYPE,FONTSIZE-4));
labelLoad[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelLoad[i]->setText("");
labelLoad[i]->hide();
labelStatus[i] = new QLabel(this);
labelStatus[i]->setPalette(pal_normal);
labelStatus[i]->setFont(QFont(FONTTYPE,FONTSIZE-4));
labelStatus[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelStatus[i]->setText("");
labelStatus[i]->hide();
}
updateHoists();
//+++ Scrollbar anzeigen
scrollbar = new DPScrollBar(this);
scrollbar->setPosition(565,70);
scrollbar->setSize(60,450);
scrollbar->buttonScrollUp->hide();
scrollbar->show();
//+++ Button fuer den Fahrmodus erzeugen
buttonMoveMode = new DPPushbutton("",this,0);
buttonMoveMode->setGeometry(5,540,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonMoveMode->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonMoveMode->setText(tr("Asynchrone\nFahrt"));
buttonMoveMode->setPalette(pal_normal);
buttonMoveMode->show();
//+++ Button fuer den Gruppenmodus erzeugen
buttonGroupMode = new DPPushbutton("",this,0);
buttonGroupMode->setGeometry(5,540+BUTTONHEIGHT5+5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonGroupMode->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonGroupMode->setText(tr("Gruppenmodus:\nmit Abschaltung"));
buttonGroupMode->setPalette(pal_normal);
connect(buttonGroupMode,SIGNAL(clicked()),this,SLOT(buttonGroupModeClicked()));
buttonGroupMode->show();
//+++ Button fuer die Zieleingabe erzeugen
buttonDestination = new DPPushbutton("",this,0);
buttonDestination->setGeometry(5+BUTTONWIDTH5+5,540,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonDestination->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonDestination->setText(tr("Ziel\n2500 mm"));
buttonDestination->setPalette(pal_normal);
buttonDestination->hide();
//+++ Button fuer die Zeiteingabe erzeugen
buttonTime = new DPPushbutton("",this,0);
buttonTime->setGeometry(5+BUTTONWIDTH5+5,540+BUTTONHEIGHT5+5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonTime->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonTime->setText(tr("Fahrzeit\n00:30 min"));
buttonTime->setPalette(pal_normal);
buttonTime->hide();
//+++ Button fuer die Freifahrt erzeugen
buttonFreeMode = new DPPushbutton("",this,0);
buttonFreeMode->setGeometry(5 + 2 * ( BUTTONWIDTH5+5),540,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonFreeMode->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonFreeMode->setText(tr("Freifahrt\nAUS"));
buttonFreeMode->setPalette(pal_normal);
buttonFreeMode->hide();
//+++ Button fuer das Ausrichten erzeugen
buttonJustify = new DPPushbutton("",this,0);
buttonJustify->setGeometry(5+2*(BUTTONWIDTH5+5),540+BUTTONHEIGHT5+5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonJustify->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonJustify->setText(tr("Ausrichten"));
buttonJustify->setPalette(pal_normal);
buttonJustify->hide();
setGroupMode(GM_GROUP);
//+++ Timer zum aktualisieren der Zuginfos
timerRefresh = new QTimer(this);
connect(timerRefresh,SIGNAL(timeout()),this,SLOT(timerRefreshDone()));
timerRefresh->start(1000);
update();
}
StackedLayout:
------------------
hoist_selectionLeftFrame = new HoistSelection(leftFrame);
hoist_selectionLeftFrame->setPageNumber(1);
hoistMoveFrameLeft = new HoistMoveClass(leftFrame);
hoistMoveFrameLeft->setPageNumber(1);
layoutLeft = new QStackedLayout(leftFrame);
layoutLeft->addWidget(hoist_selectionLeftFrame);
layoutLeft->addWidget(hoistMoveFrameLeft);
layoutLeft->setCurrentIndex(0);
Ich habe bereits ein StackedLayout mit zwei Widgets. Beides sind eigene Klassen. Ich lasse standardmäßig das erste Widget einblenden. Wenn man dann auf einen OK Knopf drückt wird das zweite eingeblendet. Das Problem liegt nun darin, dass beim zweiten Widget die Anzeige nicht von alleine aktualisiert wird. Also, wenn man z.B. einen Button drückt, wird der normalerweise solange er gedrückt ist invertiert dargestellt. Das funktioniert hier eben nicht. Die zugehörige Funktion wird aber aufgerufen. Ich habe schon alles erdenkliche probiert mit update() und repaint(). Aber das funktioniert trotzdem nicht. Wenn man aber die ALT-Taste drückt, wird der Bildschirm aktualisiert. Ich habe nun keine Ahnung mehr, was ich noch anstellen soll, damit Windows mir meinen Bildschirm neu malt.
Ich hänge mal meine beiden Klassen an und den Teil mit dem StackedLayout.
Dirk.
Widget 1:
-----------
HoistSelection::HoistSelection(QWidget *parent, Qt::WindowFlags f) :
QWidget(parent,f)
{
QString text,text2;
// Zeiger initialisieren
scrollbar = NULL;
labelHoists = NULL;
labelSelected = NULL;
buttonOK = NULL;
buttonViewMode = NULL;
for ( int i = 0; i < 192; i++ ) {
buttonHoist = NULL;
}
sm = NULL;
for ( int i = 0; i < 2; i++ ) {
neighbour_classes = NULL;
}
hoistMove = NULL;
// Membervariablen initialisieren
lineoffset = 0;
viewMode = ZUGNUMMER;
numSelected = 0;
for ( NetID_t i = 0; i < 192; i++ ) {
selectedHoists = 0;
}
pageNumber = 0;
setGeometry(4,4,630,744);
setPalette(pal_normal);
setAutoFillBackground(true);
// Scrollbar anzeigen
scrollbar = new DPScrollBar(this);
scrollbar->setPosition(565,45);
scrollbar->setSize(60,552);
scrollbar->buttonScrollUp->hide();
connect(scrollbar->buttonScrollUp,SIGNAL(clicked()),this,SLOT(buttonScrollUpClicked()));
connect(scrollbar->buttonScrollDown,SIGNAL(clicked()),this,SLOT(buttonScrollDownClicked()));
scrollbar->show();
// Label fuer die verfuegbaren Zuege erzeugen
labelHoists = new QLabel(this);
labelHoists->setGeometry(5,5,620,30);
labelHoists->setPalette(pal_normal);
labelHoists->setFont(QFont(FONTTYPE,FONTSIZE-2));
labelHoists->setAlignment(Qt::AlignVCenter);
labelHoists->setText("Label1");
labelHoists->show();
// Label fuer die ausgewaehlten Zuege erzeugen
labelSelected = new QLabel(this);
labelSelected->setGeometry(5,605,620,30);
labelSelected->setPalette(pal_normal);
labelSelected->setFont(QFont(FONTTYPE,FONTSIZE-2));
text = text.number(numSelected);
text2 = text + trUtf8(" von ");
text = text.number(ControlParams.MaxNumberSelectHoistsAsync);
text2 = text2 + text + trUtf8(" Zügen ausgewählt.");
labelSelected->setText(text2);
labelSelected->setAlignment(Qt::AlignVCenter);
labelSelected->show();
// OK-Button erzeugen
buttonOK = new DPPushbutton("",this,0);
buttonOK->setGeometry(5,647,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonOK->setPalette(pal_green);
buttonOK->setText(trUtf8("OK"));
connect(buttonOK,SIGNAL(clicked()),this,SLOT(buttonOKClicked()));
buttonOK->hide();
// Umschaltung zwischen Steckstelle und Zugnummer
buttonViewMode = new DPPushbutton("",this,0);
buttonViewMode->setGeometry(620 - BUTTONWIDTH5,647,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonViewMode->setPalette(pal_normal);
buttonViewMode->setText(trUtf8("Auswahl nach\nZugnummer"));
buttonViewMode->setActive(false,FGCOLOR);
connect(buttonViewMode,SIGNAL(clicked()),this,SLOT(buttonViewModeClicked()));
buttonViewMode->show();
// SignalMapper fuer die Zugbuttons erstellen
sm = new QSignalMapper(this);
connect(sm,SIGNAL(mapped(int)),this,SLOT(buttonHoistClicked(int)));
// Buttons fuer die Zuege malen
for ( int i = 0; i < 192; i++ ) {
buttonHoist = new DPPushbutton("",this,0);
buttonHoist->setAutoFillBackground(true);
buttonHoist->setPalette(pal_normal);
buttonHoist->setActive(false,FGCOLOR);
buttonHoist->setFrameStyle(QFrame::Plain|QFrame::Box);
buttonHoist->setFont(QFont(FONTTYPE,FONTSIZE+1));
buttonHoist->setText("");
connect(buttonHoist[i],SIGNAL(clicked()),sm,SLOT(map()));
sm->setMapping(buttonHoist[i],i);
buttonHoist[i]->hide();
}
update();
}
Widget 2:
-----------
HoistMoveClass::HoistMoveClass(QWidget *parent) : QWidget(parent)
{
setGeometry(4,4,630,744);
setAutoFillBackground(true);
//+++ Zeiger initialisieren
buttonBack = NULL;
joystick = NULL;
for ( int i = 0; i < 192; i++ ) {
labelHoist[i] = NULL;
labelPosition[i] = NULL;
labelLoad[i] = NULL;
labelStatus[i] = NULL;
}
buttonMoveMode = NULL;
buttonGroupMode = NULL;
buttonDestination = NULL;
buttonTime = NULL;
buttonFreeMode = NULL;
buttonJustify = NULL;
//+++ Membervariablen initialisieren
lastEnableState = false;
Width = 630;
Height = 744;
numSelectedHoists = 0;
text = "";
for ( int i = 0; i < 192; i++ ) {
selectedHoists[i] = 0;
}
vMaxUp = 0;
vMaxDown = 0;
pageNumber = 0;
pageColor = FGCOLOR;
pal_pageColor = pal_normal;
pal_pageColorInvers = pal_normalInvers;
speed = 0;
lastSpeed = 0;
moveDir = MD_STOP;
lastMoveDir = MD_STOP;
groupMode = GM_GROUP;
moveMode = MM_ASYNC;
isVisible = false;
//+++ Fahrhebel erzeugen
joystick = new DPJoystick(this);
joystick->show();
//+++ Zurueck-Button erzeugen
buttonBack = new DPPushbutton("",this,0);
buttonBack->setGeometry(5,Height-BUTTONHEIGHT5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonBack->setPalette(pal_normal);
buttonBack->setText(tr("Zurück"));
buttonBack->setAutoFillBackground(true);
connect(buttonBack,SIGNAL(clicked()),this,SLOT(buttonBackClicked()));
buttonBack->show();
//+++ Label mit der Anzahl der angewaehlten Zuege anzeigen
labelSelectedHoists = new QLabel(this);
labelSelectedHoists->setGeometry(5,5,Width - 10, 25);
labelSelectedHoists->setPalette(pal_normal);
labelSelectedHoists->setFont(QFont(FONTTYPE,FONTSIZE-2));
labelSelectedHoists->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
text = text.number(numSelectedHoists);
if ( numSelectedHoists == 1 ) {
text = text + tr(" Zug angewählt.");
} else {
text = text + tr(" Züge angewählt.");
}
labelSelectedHoists->setText(text);
labelSelectedHoists->show();
//+++ Labels der Zuege anlegen
for ( int i = 0; i < 192; i++ ) {
labelHoist[i] = new QLabel(this);
labelHoist[i]->setPalette(pal_normal);
labelHoist[i]->setFont(QFont(FONTTYPE,FONTSIZE+1));
labelHoist[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelHoist[i]->setText("");
labelHoist[i]->hide();
labelPosition[i] = new QLabel(this);
labelPosition[i]->setPalette(pal_normal);
labelPosition[i]->setFont(QFont(FONTTYPE,FONTSIZE-4));
labelPosition[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelPosition[i]->setText("");
labelPosition[i]->hide();
labelLoad[i] = new QLabel(this);
labelLoad[i]->setPalette(pal_normal);
labelLoad[i]->setFont(QFont(FONTTYPE,FONTSIZE-4));
labelLoad[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelLoad[i]->setText("");
labelLoad[i]->hide();
labelStatus[i] = new QLabel(this);
labelStatus[i]->setPalette(pal_normal);
labelStatus[i]->setFont(QFont(FONTTYPE,FONTSIZE-4));
labelStatus[i]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
labelStatus[i]->setText("");
labelStatus[i]->hide();
}
updateHoists();
//+++ Scrollbar anzeigen
scrollbar = new DPScrollBar(this);
scrollbar->setPosition(565,70);
scrollbar->setSize(60,450);
scrollbar->buttonScrollUp->hide();
scrollbar->show();
//+++ Button fuer den Fahrmodus erzeugen
buttonMoveMode = new DPPushbutton("",this,0);
buttonMoveMode->setGeometry(5,540,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonMoveMode->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonMoveMode->setText(tr("Asynchrone\nFahrt"));
buttonMoveMode->setPalette(pal_normal);
buttonMoveMode->show();
//+++ Button fuer den Gruppenmodus erzeugen
buttonGroupMode = new DPPushbutton("",this,0);
buttonGroupMode->setGeometry(5,540+BUTTONHEIGHT5+5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonGroupMode->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonGroupMode->setText(tr("Gruppenmodus:\nmit Abschaltung"));
buttonGroupMode->setPalette(pal_normal);
connect(buttonGroupMode,SIGNAL(clicked()),this,SLOT(buttonGroupModeClicked()));
buttonGroupMode->show();
//+++ Button fuer die Zieleingabe erzeugen
buttonDestination = new DPPushbutton("",this,0);
buttonDestination->setGeometry(5+BUTTONWIDTH5+5,540,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonDestination->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonDestination->setText(tr("Ziel\n2500 mm"));
buttonDestination->setPalette(pal_normal);
buttonDestination->hide();
//+++ Button fuer die Zeiteingabe erzeugen
buttonTime = new DPPushbutton("",this,0);
buttonTime->setGeometry(5+BUTTONWIDTH5+5,540+BUTTONHEIGHT5+5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonTime->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonTime->setText(tr("Fahrzeit\n00:30 min"));
buttonTime->setPalette(pal_normal);
buttonTime->hide();
//+++ Button fuer die Freifahrt erzeugen
buttonFreeMode = new DPPushbutton("",this,0);
buttonFreeMode->setGeometry(5 + 2 * ( BUTTONWIDTH5+5),540,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonFreeMode->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonFreeMode->setText(tr("Freifahrt\nAUS"));
buttonFreeMode->setPalette(pal_normal);
buttonFreeMode->hide();
//+++ Button fuer das Ausrichten erzeugen
buttonJustify = new DPPushbutton("",this,0);
buttonJustify->setGeometry(5+2*(BUTTONWIDTH5+5),540+BUTTONHEIGHT5+5,BUTTONWIDTH5,BUTTONHEIGHT5);
buttonJustify->setFont(QFont(FONTTYPE,FONTSIZE-3));
buttonJustify->setText(tr("Ausrichten"));
buttonJustify->setPalette(pal_normal);
buttonJustify->hide();
setGroupMode(GM_GROUP);
//+++ Timer zum aktualisieren der Zuginfos
timerRefresh = new QTimer(this);
connect(timerRefresh,SIGNAL(timeout()),this,SLOT(timerRefreshDone()));
timerRefresh->start(1000);
update();
}
StackedLayout:
------------------
hoist_selectionLeftFrame = new HoistSelection(leftFrame);
hoist_selectionLeftFrame->setPageNumber(1);
hoistMoveFrameLeft = new HoistMoveClass(leftFrame);
hoistMoveFrameLeft->setPageNumber(1);
layoutLeft = new QStackedLayout(leftFrame);
layoutLeft->addWidget(hoist_selectionLeftFrame);
layoutLeft->addWidget(hoistMoveFrameLeft);
layoutLeft->setCurrentIndex(0);
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Bitte benutzt doch die ![/code]
So auf die Schnelle kann ich nichts finden, wie schaltest Du um? Schonmal versucht ein einfaches Testszenario mit zwei QWidgets zu erstellen und das dann nach und nach auszubauen? Ggf. QWdigetStack benutzen.
Code: Alles auswählen
[code]-TagsSo auf die Schnelle kann ich nichts finden, wie schaltest Du um? Schonmal versucht ein einfaches Testszenario mit zwei QWidgets zu erstellen und das dann nach und nach auszubauen? Ggf. QWdigetStack benutzen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
OK, beim nächsten mal benutze ich Code-Tags.
Ja, ich habe schon ein kleines Testprogramm geschrieben und ausgebaut. Es hat dann auch erst funktioniert. Ich habe dann alles nach und nach wieder mit reingenommen und irgendwann ging es nicht mehr. Das komische ist nun, dass auch nicht mehr geht, wenn ich alles nach und nach wieder rausnehme. Ich muss dann erst einen neuen Klassennamen nehmen, dann geht es erst wieder wenn ich z.B. nur einen einzigen Button drin habe.
Gibt es wohl bei Windows/QT4 noch irgendeine Option, mit der man explizit einstellen kann, dass das aktuelle Fenster immer wieder neu gemalt wird?
Ja, ich habe schon ein kleines Testprogramm geschrieben und ausgebaut. Es hat dann auch erst funktioniert. Ich habe dann alles nach und nach wieder mit reingenommen und irgendwann ging es nicht mehr. Das komische ist nun, dass auch nicht mehr geht, wenn ich alles nach und nach wieder rausnehme. Ich muss dann erst einen neuen Klassennamen nehmen, dann geht es erst wieder wenn ich z.B. nur einen einzigen Button drin habe.
Gibt es wohl bei Windows/QT4 noch irgendeine Option, mit der man explizit einstellen kann, dass das aktuelle Fenster immer wieder neu gemalt wird?