Newsgroup: it.comp.os.linux.development
Titolo: c++ e proprietà

Avvicinandomi al c++ (kdevelop) e conoscendo il visual basic (e gambas) non
riesco a capire come posso accedere/modificare le proprità dei controlli.
Sto scrivendo per provare il codice qui sotto, l'ho modificato decine di
volte ma senza successo.
void AC::timerTimeout()
{
     btn->setCaption("gggggg");
}
Non funziona, non mi imposta il caption del pulsante.
Ad esempio per sapere il testo di un QPushButton (btn nel mio caso) come
faccio? Per modificarlo?
Il file main.cpp è:
#include "ac.h"
#include <kapplication.h>
#include <kaboutdata.h>
#include <kcmdlineargs.h>
#include <klocale.h>
#include <qapplication.h>
int main( int argc, char **argv )
{
    QApplication a( argc, argv );
    AC *win = new AC;
    a.setMainWidget( win );
    win->setCaption("Avvia/Controlla");
    win->show();
    int result = a.exec();
    delete win;
    return result;
}
Il file ac.h è:
#ifndef _AC_H_
#define _AC_H_
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kmainwindow.h>
#include <qpushbutton.h>
#include <qtimer.h>
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qgroupbox.h>
class QTimer ;
class QPushButton;
class check: public QCheckBox
{
    Q_OBJECT
public:
    check(QWidget *parent=0, const char *name=0);
public slots:
//        void timeout();
        void timerTimeout();
};
class QComboBox;
class QGroupBox;
class AC : public QWidget
{
    Q_OBJECT
public:
    AC(QWidget *parent=0, const char *name=0);
public slots:
//        void timeout();
        void timerTimeout();
protected:
        void    timerEvent( QTimerEvent * );
public:
QTimer *timer;
QPushButton *btn;
QCheckBox *check;
QComboBox *combo;
QGroupBox *controlla;
};
#endif // _AC_H_
il file ac.cpp è:
#include "ac.h"
#include <qpushbutton.h>
#include <qtimer.h>
#include <qlabel.h>
#include <qcheckbox.h>
#include <qgroupbox.h>
#include <kmainwindow.h>
#include <klocale.h>
#include <qcombobox.h>
#include "ac.moc"
 AC::AC(QWidget *parent, const char *name )
    : QWidget( parent, name )
{
    // set the shell's ui resource file
//     setXMLFile("acui.rc");
    QCheckBox *check= new QCheckBox( "fffffff", this, "check" );
    QGroupBox *controlla = new QGroupBox("Controlla
ogni:",this,"controlla");
    controlla->move(10,35);
    controlla->resize(180,60);
    check->resize(200,30);
    check->move(10,0);
    QComboBox *combo= new QComboBox( 0, controlla, "combo" );
    combo->move(10,20);
    combo->resize(150,combo->height());
    combo->insertItem("5 minuti",-1);
    combo->insertItem("10 minuti",-1);
    combo->insertItem("15 minuti",-1);
    combo->insertItem("30 minuti",-1);
    QPushButton *btn = new QPushButton("Avvia",this,"btn");
    btn->move(10,100);
    //int w=this->width()-100;
    btn->resize(controlla->width(),btn->height());
    this->resize(200,140);
    QTimer *timer =new QTimer(this,"timer");
    connect(timer, SIGNAL(timeout()), this,SLOT(timerTimeout()) );
    timer->start( 2000); // 2 seconds single-shot timer
    
}
void AC::timerTimeout()
{
//    check->resize(100,30);
//     check->move(100,100);
     setCaption("1kkkkkkkkk");
// QUI NON RIESCO A MODIFICARE IL CAPTION DI btn
     btn->setCaption("gggggg");
     //btn->setCaption("jjjjjjjjjjj");
    //btn->setCaption("timer2");
     //check.setCaption("kjjjjjjjj");
     //this->setCaption("timer2");
     //emit timerTimeout();
     return ;
     
}

Ho risolto.