Kirjoittaja Aihe: Missä on Qt:n QApplication -tiedosto  (Luettu 2250 kertaa)

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Missä on Qt:n QApplication -tiedosto
« : 04.01.15 - klo:19.57 »
Käytän Ubuntu 12.04 -versioita.

Kokeilin Qt:tä ehkä noin vuosi sitten, ja sain pari esimerkkiä kääntymään. Aikaisemmin toiminut komento on

Koodia: [Valitse]
g++ qwtkoe01.cpp -g -o qwtkoe01 -std=c++0x -Wall -pedantic
Kun nyt kokeilin samoja esimerkkejä, tulee valitus, että QApplication -tiesdostoa ei ole olemassa. Ehkä Qt:kin on päivitetty tässä välillä, mutta QApplication on niin perusjuttu, että se varmaan on jossain.

Mitä olisi tehtävissä tässä tilanteessa?

teele

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Missä on Qt:n QApplication -tiedosto
« Vastaus #1 : 04.01.15 - klo:20.24 »
Komentoriviltä puuttuu viittaukset Qt:n headereihin ja kirjastoihin. Käytä mieluummin qmakea ja Makea tämän ohjeen mukaan:
 
https://qt-project.org/doc/qt-4.7/gettingstartedqt.html

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Vs: Missä on Qt:n QApplication -tiedosto
« Vastaus #2 : 05.01.15 - klo:21.21 »
Kiitos, qmakella ja makella QApplication taitaa löytyä tässä Ubuntu 12.04 -koneessa.

Mutta lainakoneessa on Ubuntu !4.04 ja siinä ei samalla menetelmällä näyttänyt QApplication löytyvän(!?). Siinäkin on toiminut aikaisemmin.

Tarkoituksenani olisi saada liitteenä oleva pikku ohjelma ainakin kääntymään. Tässä 12.04 -koneessa se kääntyisi varmaan muuten, mutta ongelmana on

Koodia: [Valitse]
/qt/harjoittelu1/qwtkoe01$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQWT_DLL -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -I/usr/include/qwt-qt4 -I/usr/include/qwt -I. -o qwtkoe01.o qwtkoe01.cpp
g++ -m64 -Wl,-O1 -o qwtkoe01 qwtkoe01.o    -L/usr/lib/x86_64-linux-gnu -l qwt-qt4 -L/usr/lib -lqwt -lQtSvg -lQtGui -lQtCore -lpthread
/usr/bin/ld: cannot find -lqwt-qt4
collect2: ld:n paluuarvo oli 1
make: *** [qwtkoe01] Virhe 1

Laitan vielä kokeiluohjelman tähän mukaan
Koodia: [Valitse]
    #include <QApplication>
    #include <qwt_plot.h>
    #include <qwt_plot_curve.h>
    #include <qwt_plot_grid.h>
    #include <qwt_symbol.h>
    #include <qwt_legend.h>

     
     
    int main(int argc, char *argv[])
    {
    QApplication app(argc, argv);
     
    QwtPlot plot;
    plot.setTitle( "Plot Demo" );
    plot.setCanvasBackground( Qt::white );
    plot.setAxisScale( QwtPlot::yLeft, 0.0, 10.0);
    plot.insertLegend( new QwtLegend() );
     
    QwtPlotGrid *grid = new QwtPlotGrid();
    grid->attach( &plot );
     
    QwtPlotCurve *curve = new QwtPlotCurve();
    curve->setTitle( "Pixel Count" );
    //curve->setPen( Qt::blue, 4  ); //xxxxxxxxxxxx
    curve->setPen( QPen( Qt::red, 4 ) );
   
    curve->setRenderHint( QwtPlotItem::RenderAntialiased, true );
     
    QwtSymbol *symbol = new QwtSymbol( QwtSymbol::Ellipse,
    QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 8, 8 ) );
    //curve->setSymbol( symbol );   //zzzzzzzzzzzzzzz
    curve->setSymbol( symbol );
/*     
    QPolygonF points;
    points << QPointF( 0.0, 4.4 ) << QPointF( 1.0, 3.0 )
    << QPointF( 2.0, 4.5 ) << QPointF( 3.0, 6.8 )
    << QPointF( 4.0, 7.9 ) << QPointF( 5.0, 7.1 );
    //curve->setSamples( points );   //åååååååååååååååååååå
    curve->attach( &plot );
*/

////http://www.qtcentre.org/threads/36294-error-no-matching-function-for-call-to-%E2%80%98QwtPlotCurve-setData
    double x[2]; x[0] = 1.1; x[1] = 2.0;
    double y[2]; y[0] = 1.1; y[1] = 2.0;
    QwtPlotCurve *curve2 = new QwtPlotCurve();
    curve2->setSamples(x, y, 2);
    curve2->attach( &plot );


/*
    QwtArray< double > x; x << 1.1 << 4.4 << 8.6;
    QwtArray< double > y; y << 3.1 << 7.4 << 5.2;
    QwtPlotCurve *curve3 = new QwtPlotCurve();
    curve3->setData(x, y);
    curve3->attach( &plot );
*/
       
    plot.resize( 600, 400 );
    plot.replot();

     
    //curve3->detach();
   

    plot.show(); 
/*
    sleep(3);
    x.clear(); y.clear();
    curve3->setData(x, y);
    plot.replot();
    plot.show();
*/
     
    return app.exec();
    }


nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Missä on Qt:n QApplication -tiedosto
« Vastaus #3 : 05.01.15 - klo:23.31 »
/usr/bin/ld: cannot find -lqwt-qt4

Asenna paketti libqwt-qt4-dev. Libqwt ei kuulu Qt:n perusasennukseen.