Seite 1 von 1

Signal / Slot Klassen Problem

Verfasst: 31. März 2010 15:41
von Qloroplast
Bild

Problem: Ich versuche von einer child Klasse 2 QListWidgetItem anzuzeigen oder zu verstecken je nach dem wie es gewuenscht ist

Code: Alles auswählen

ConfigDialog::ConfigDialog(Log_Console * Log_Config)
{
    contentsWidget = new QListWidget;
 
    pagesWidget = new QStackedWidget;
    pagesWidget->addWidget(new ConfigurationPage(0,Log_Config));
    pagesWidget->addWidget(new UpdatePage);
    pagesWidget->addWidget(new QueryPage);
    pagesWidget->addWidget(new Log_Page(0,Log_Config));
 }   
}

Code: Alles auswählen

void ConfigDialog::createIcons(Log_Console * Log_Icons)
{
    QListWidgetItem *configButton = new QListWidgetItem(contentsWidget);
    configButton->setIcon(QIcon("images/120px-Computer-Symbol.png"));
    configButton->setText(tr("Server"));
    configButton->setTextAlignment(Qt::AlignHCenter);
    configButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);

    updateButton = new QListWidgetItem(contentsWidget);
    updateButton->setIcon(QIcon("images/117px-WLAN-Symbol.png"));
    updateButton->setText(tr("Configuration"));
    updateButton->setTextAlignment(Qt::AlignHCenter);
    updateButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
    updateButton->setHidden(true);

    queryButton = new QListWidgetItem(contentsWidget);
    queryButton->setIcon(QIcon("images/info_icon.png"));
    queryButton->setText(tr("Info"));
    queryButton->setTextAlignment(Qt::AlignHCenter);
    queryButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
    queryButton->setHidden(true);

    QListWidgetItem *logButton2 = new QListWidgetItem(contentsWidget);
    logButton2->setIcon(QIcon("images/query-icon.jpg"));
    logButton2->setText(tr("LOG-Buch"));
    logButton2->setTextAlignment(Qt::AlignHCenter);
    logButton2->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
}

Code: Alles auswählen

ConfigurationPage::ConfigurationPage(QWidget *parent,Log_Console *Log_Configure)    : QWidget(parent)
{
    QGroupBox *configGroup      = new QGroupBox(tr("Server configuration"));
    QLabel *serverLabel         = new QLabel(tr("Server:"));
    serverCombo                 = new QComboBox;
    server_verbinden            = new QPushButton("verbinden");
    server_disconnect           = new QPushButton("abbrechen");
    server_disconnect->hide();
  }
//----------SIGNALE----------------------------------------------------------------------------------------------------------
    QObject::connect(server_verbinden,  SIGNAL(clicked(bool)), server_disconnect, SLOT(show()));
    QObject::connect(server_verbinden,  SIGNAL(clicked(bool)), server_verbinden,  SLOT(hide()));
    QObject::connect(server_verbinden,  SIGNAL(clicked())  , this ,               SLOT(machVerbindung()));
    QObject::connect(server_disconnect, SIGNAL(clicked())  , this ,               SLOT(closeVerbindung()));
    QObject::connect(server_disconnect, SIGNAL(clicked(bool)), server_verbinden,  SLOT(show()));
    QObject::connect(server_disconnect, SIGNAL(clicked(bool)), server_disconnect, SLOT(hide()));
   

 !-! Hier ist das Problem !-! 
connect(server_verbinden,  SIGNAL(clicked(bool)),this,               SLOT(slot_changeView()));
!-!

}
mir ist nicht klar wie ich nun ConfigDialog::createIcons den updateButton || queryButton mit Signal ansprechen kann --> ConfigDialog hat einen public slots: slot_changeView()
mit this geht es nicht

ich steh gerade vor dem Wald mit lauter Baeumen
connect(server_verbinden, SIGNAL(clicked(bool)),this,SLOT(slot_changeView()));
findet aber keinen slot ? Was mache ich falsch ? Finde ich den richten Bezeichner nicht fuer das Object ?
Object::connect: No such slot ConfigurationPage::slot_changeView() in pages.cpp:29

Verfasst: 31. März 2010 16:21
von pfid
Im connect-Aufruf müssen Signal + Slot die gleichen Parameter haben, das ist bei dir nicht der Fall.

Verfasst: 31. März 2010 16:25
von archer
... und du mußt statt this, schon einen Zeiger auf deinen Dialog nehmen.

Verfasst: 31. März 2010 16:36
von Qloroplast
... und du mußt statt this, schon einen Zeiger auf deinen Dialog nehmen.
könnte mir jemand bitte ein unscharfes Beispiel dafür geben ? Ich habe überhaupt keinen Ansatz .....
Im connect-Aufruf müssen Signal + Slot die gleichen Parameter haben, das ist bei dir nicht der Fall.
hehe das ist mir noch gar nicht aufgefallen das diese immer gleich sein müssen ! Danke dir :-)

Verfasst: 31. März 2010 16:41
von pfid
Qloroplast hat geschrieben:
... und du mußt statt this, schon einen Zeiger auf deinen Dialog nehmen.
könnte mir jemand bitte ein unscharfes Beispiel dafür geben ? Ich habe überhaupt keinen Ansatz .....
http://qt.nokia.com/doc/4.5/signalsands ... ll-example
http://qt.nokia.com/doc/4.5/qobject.html#connect-2