Hi,
danke für die Antwort.
Ich habe den Konstruktor von QProgressBar aufgerufen. Das Konzept mit Signals und Slots kenne ich auch.
Hab es auch schon mit den showEvent() bzw. event()-Methoden+QEvent::Show von QWidget versucht. Klappt auch nicht.
Dazu muss ich sagen, dass ich unter Windows programmiere.
Hier noch einmal Code-Schnipsel aus meinem Programm:
main.cpp:
Code:
...
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
SysCheckWidget widget;
widget.setMaximumWidth(400);
widget.show();
CQueue queue;
QObject::connect(&widget,SIGNAL(SIGStartThread()),
&queue, SLOT (SLOTStartThread()));
QObject::connect(&queue,SIGNAL(SIGProgBar(int)),
&widget, SLOT (slotAddValue(int)) );
return app.exec();
}
....
check_sys.cpp:
Code:
SysCheckWidget::SysCheckWidget(QWidget *parent) : QWidget(parent)
{
o_System = new CSystemCheck(this);
sysProgressBar = new QProgressBar(this);
butStart = new QPushButton("Start", this);
....
connect( o_System, SIGNAL(signalSetProgressBar(int)), this,
SLOT(slotAddValue(int)));
connect(butStart,SIGNAL(clicked()),this,
SLOT(SLOTStartProgressBar()));
...
SLOTStartProgressBar();
}
void SysCheckWidget::slotAddValue(int addValue)
{
if ( addValue >= 0 && addValue < 100 )
{
sysProgressBar->setValue(sysProgressBar->value() + addValue);
}
else if ( addValue == 100 )
{
sysProgressBar->setValue(100);
AddMessage(tr("System OK.\n"), TRUE);
}
else
{
sysProgressBar->setValue(0);
}
}
void SysCheckWidget::SLOTStartProgressBar()
{
if (StartCheckSystem())
{
// hier geht er auf jeden Fall rein!!!!
emit SIGStartThread();
}
}
Nun wenn ich auf den Start-Button (butStart) klicke, geht es.
Hab auch schon das connect mit o_System entfernt. Das gleiche Ergebnis. Start-Button funktioniert, beim Anzeigen des Widgets nicht.
Grüße proggy
Lesezeichen