ich hab mir eine eigene funktion geschrieben, um damit ber buttonklick den text des labels zu ändern. dabei stosse ich auf das problem, das mein objekt label nicht erkannt wird
mein code
test.cpp
Code: Alles auswählen
#include <qpushbutton.h>
#include <qlineedit.h>
#include <qlayout.h>
#include <qpopupmenu.h>
#include <qmenubar.h>
#include <qlabel.h>
#include "test.h"
TestWidget::TestWidget(QWidget* parent, const char* name)
: QWidget(parent, name)
{
QLayout* layout = new QVBoxLayout(this);
QPopupMenu *fileMenu = new QPopupMenu(this);
fileMenu->insertItem( "Neu" );
fileMenu->insertItem( "Oeffnen");
fileMenu->insertSeparator();
fileMenu->insertItem( "&Beenden", this, SLOT(close()));
QMenuBar *mainMenu = new QMenuBar(this);
mainMenu->insertItem( "&Datei",fileMenu );
QLabel *label = new QLabel(this);
label->setText("alter text");
label->setGeometry(0, 120, 200, 50);
label->setAlignment(Qt::AlignCenter);
label->setFont(QFont("Arial", 20, QFont::Bold));
QLineEdit* lineEdit = new QLineEdit(this);
QPushButton* button = new QPushButton("Hier klicken", this);
layout->add(lineEdit);
layout->add(button);
layout->add(label);
QObject::connect(button, SIGNAL(clicked()), label, SLOT(changeLabel));
}
void TestWidget::changeLabel()
{
label->setText("neuer text");
}
Code: Alles auswählen
#ifndef QTTUTWIDGET_H
#define QTTUTWIDGET_H
#include <qwidget.h>
class TestWidget : public QWidget
{
Q_OBJECT
public:
TestWidget(QWidget* parent=0, const char* name=0);
protected slots:
protected:
};
#endif
Code: Alles auswählen
#include <qapplication.h>
#include "test.h"
int main( int argc, char* argv[] )
{
QApplication app( argc, argv );
TestWidget tutwidget( 0 );
tutwidget.resize( 300,300 );
app.setMainWidget( &tutwidget );
tutwidget.show();
return app.exec();
}