Marco Ribolla
Grünschnabel
Hallo zusammen!
Ich habe gerade begonnen C++ kombiniert mit Qt zu programmieren. Mein Ziel ist es wenn man auf einen Button drückt, dass der String vom Label geändert wird. Hierzu mein Code:
Wenn ich versuche zu kompilieren, bekomme ich einen C2653 zurück ('std', keine Klasse oder Namespace) und diverse andere Compilerfehlermeldungen welche meiner Meinung nach mit diesem zu tun haben (C4430, C2143, etc...). Weiss jemand ine elegante Lösung wie ich das Problem beheben kann? Wenn ich (stupiderweise) in jedem File (.cpp und .h) using namespace std; einfüge bringt mich das keinen Schritt weiter. Ich wäre wirklich froh, wenn mir jemand helfen könnte! Vielen Dank******
Gruss, Marco
Ich habe gerade begonnen C++ kombiniert mit Qt zu programmieren. Mein Ziel ist es wenn man auf einen Button drückt, dass der String vom Label geändert wird. Hierzu mein Code:
C++:
// main
/////////////////////////////////////////////////////////////////////////
#include "test.h"
#include "logic.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Test w;
w.show();
return a.exec();
}
//test.h
/////////////////////////////////////////////////////////////////////////
#ifndef TEST_H
#define TEST_H
#include <QtGui/QMainWindow>
#include "ui_test.h"
#include "logic.h"
class Logic;
class Test : public QMainWindow, public Logic
{
Q_OBJECT
public:
Test(QWidget *parent = 0, Qt::WFlags flags = 0);
~Test();
void virtual updateUserInterface();
private slots:
void on_pushButton_clicked();
private:
Ui::TestClass ui;
};
#endif // TEST_H
//test.cpp
/////////////////////////////////////////////////////////////////////////
#include "test.h"
#include <QString>
Test::Test(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
}
Test::~Test()
{
}
void Test::updateUserInterface()
{
QString qstr = QString::fromStdString(getText());
ui.label->setText(qstr);
}
void Test::on_pushButton_clicked()
{
Logic::onButton();
}
//logic.h
/////////////////////////////////////////////////////////////////////////
#ifndef LOGIC_H
#define LOGIC_H
class Logic
{
public:
void virtual updateUserInterface();
virtual ~Logic();
protected:
void onButton();
const std::string& getText();
private:
std::string m_Text;
};
#endif // LOGIC_H
//logic.cpp
/////////////////////////////////////////////////////////////////////////
Logic::~Logic()
{
}
void Logic::updateUserInterface()
{
}
void Logic::onButton()
{
m_Text = "Label changed";
updateUserInterface();
}
const std::string& Logic::getText()
{
return m_Text;
}
Gruss, Marco
Zuletzt bearbeitet von einem Moderator: