[Qt] Nie widzi nazwy programu .
Ostatnio zmodyfikowano 2012-05-10 20:01
szymx Temat założony przez niniejszego użytkownika |
[Qt] Nie widzi nazwy programu . » 2012-05-10 18:33:08 Może najpierw zacznę od kodu : main.cpp #include <QtGui> #include <iostream> #include "oknogl.hpp"
int main( int argc, char * argv[] ) { Q_INIT_RESOURCE( pliki ); QApplication program( argc, argv ); QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "UTF-8" ) ); oknogl okno; okno.show(); return program.exec(); }
oknogl.cpp #include "oknogl.hpp" #include "QtGui"
oknogl::oknogl() { setGeometry( 100, 100, 500, 400 ); setWindowTitle( "Kalkulator" ); setWindowIcon( QIcon( ":/zdjęcia/windows.png" ) ); przycisk = new QPushButton( "zamknij", this ); przycisk->setGeometry( 200, 350, 100, 50 ); przycisk->setIcon( QIcon( ":/zdjęcia/exit.png" ) ); etykieta = new QLabel( "Witaj w moim koszmarze ! ", this ); etykieta->setGeometry( 200, 100, 200, 200 ); connect( & przycisk, SIGNAL( clicked() ), program, SLOT( quit ) ); }
oknogl.hpp #ifndef oknogl_HPP #define oknogl_HPP
#include <QtGui> #include <QApplication>
using namespace std;
class oknogl : public QMainWindow { public: oknogl(); private: QPushButton * przycisk; QLabel * etykieta; };
#endif
Zacząłem się uczyć QT bo zainstalowałem Kubuntu napisałem już parę prostych programów w jednym pliku . Ale jak wiadomo zawsze warto na parę mniejszych podzielić . Daję przycisk kompilacji i budowanie (QT creator Linuxowy ) i otrzymuję komunikat 'program' was not declared in this scope . Ma ktoś pomysł jak to zaradzić ? Bo próbowałem już wszystkiego , a Herr Onkel Google nie zna na to odpowiedzi . |
|
m4tx |
» 2012-05-10 18:38:51 Musisz dać w oknogl.hpp wskaźnik do program, a w main.cpp mu przypisać wartość. Po prostu funkcja w oknogl.cpp "nie widzi" zmiennej program, ponieważ jest w innym pliku, w dodatku jest to zmienna lokalna... |
|
szymx Temat założony przez niniejszego użytkownika |
» 2012-05-10 20:01:04 Dzięki zabieram się za pisanie tego wskaźnika . Edited : Napisałem ten wskaźnik ale wywala teraz że nie ma pasującej funkcji : oknogl.cpp #include "oknogl.hpp" #include "QtGui" oknogl::oknogl() { setGeometry(100,100,500,400); setWindowTitle("Kalkulator"); setWindowIcon(QIcon(":/zdjęcia/windows.png") ); przycisk = new QPushButton("zamknij" , this ) ; przycisk->setGeometry(200,350,100,50); przycisk->setIcon(QIcon(":/zdjęcia/exit.png" )); etykieta = new QLabel("Witaj w moim koszmarze ! " , this ) ; etykieta->setGeometry(200,100,200,200); connect (przycisk , SIGNAL(clicked()) , * Qprogram , SLOT(quit)) ;
}
oknogl.hpp #ifndef oknogl_HPP #define oknogl_HPP
#include <QtGui> #include <QApplication>
using namespace std ; extern QApplication * Qprogram ;
class oknogl : public QMainWindow { public: oknogl(); private: QPushButton *przycisk ; QLabel *etykieta ;
};
#endif // oknogl_HPP
main.cpp
#include <QtGui> #include <iostream> #include "oknogl.hpp"
int main(int argc , char *argv[] ) { Q_INIT_RESOURCE(pliki); QApplication program(argc, argv); Qprogram = &program ;
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
oknogl okno ; okno.show( ) ;
return program.exec() ; }
|
|
« 1 » |