[gelöst] tr() wird als nicht deklariert angezeigt

Alles rund um die Programmierung mit Qt
Antworten
mase
Beiträge: 39
Registriert: 8. Mai 2007 00:17

[gelöst] tr() wird als nicht deklariert angezeigt

Beitrag von mase »

Hallo!
Ich habe heut mal wieder ein bisjen mit QT4 geübt.
Ich hab ein Problem in kdevelop.
Folgender Beispielcode:

Code: Alles auswählen

#include <QApplication>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QLabel>
#include <QSpinBox>
#include <QSlider>



int main(int argc, char* argv[])
{
      QApplication* app = new QApplication(argc, argv);
      QWidget* window = new QWidget;
      
      QVBoxLayout* mainlayout = new QVBoxLayout(window);
      QHBoxLayout* buttonlayout = new QHBoxLayout;
      
      QLabel* label1 = new QLabel("0");
      QSpinBox* spinbox1 = new QSpinBox;
      QSlider* slider1 = new QSlider(Qt::Horizontal);
      
      buttonlayout->addWidget(label1);
      buttonlayout->addWidget(spinbox1);
      buttonlayout->addWidget(slider1);
      
      QPushButton* close = new QPushButton(tr("Close"));
      
      mainlayout->addLayout(buttonlayout);
      mainlayout->addWidget(close);
      
      window->show();


      return app->exec();
}
Mein Problem ist, dass tr() als nicht deklariert angezeigt wird, und
die Kompilierung fehlschägt.
In einem vorigen Projekt, das ich auch mit kdevelop programmiert
hab, funktioniert es problemlos. Dabei hab ich gar nichts anders
gemacht.
Als Template hab ich "einfache QT4-Anwendung" und "QT4-Anwendung"
probiert. In keinem funktioniert tr().
Woran kann das liegen? Ich verwende Debian Lenny.
Zuletzt geändert von mase am 21. August 2008 13:09, insgesamt 2-mal geändert.
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

Evtl. daran, dass tr eine Funktion in QObject ist. Die Main Funktion aber nicht. Siehe: http://doc.trolltech.com/4.4/qobject.html#tr
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
mase
Beiträge: 39
Registriert: 8. Mai 2007 00:17

Beitrag von mase »

Aber meines Wissens sind doch fast alle Objekte von QObject
abgeleitet. Zumindest mal alle, GUI-Teile. Also muss doch tr()
für alle verfügbar sein.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Aber nur innerhalb ein QObject-Subclass. Ansonsten musst du QKlassenName::tr() verwenden.
mase
Beiträge: 39
Registriert: 8. Mai 2007 00:17

Beitrag von mase »

Stimmt!
Die main-Funktion hat ja keine solche Funktion.
In meinem vorigen Projekt hab ich tr() innerhalb der
einer QT-Klasse verwendet.
QObject::tr() ist hier die Lösung.

Danke!
Antworten