ALs Einsteiger habe ich mir Literatur besorgt, um QT zu lernen.
Ärgerlich ist es dann, wenn Originalquellcode aus dem Buch nicht läuft.
Einige Beispielcodes konnte ich erfolgreich unter Linux,KDE,Emacs zum Laufen
bringen. Also sollte es nicht an meiner Umgebung liegen.
Ist der Quellcode schon veraltet? Leider baut das Buch in der Fortsetzung auf diesen Quellcode auf. Kann man diesen aktualisieren?
Code: Alles auswählen
#include <qapplication.h>
#include <qpushbutton.h>
#include <qslider.h>
#include <qlcdnumber.h>
int main( int argc, char* argv[] )
{
QApplication myapp( argc, argv );
QWidget* mywidget = new QWidget();
mywidget->setGeometry( 400, 300, 200, 150 );
//.... Erzeugen eines Schiebebalkens
QSlider* myslider = new QSlider( 0, // kleinstm�gl. Wert
99, // gr��tm�gl. Wert
1, // Schrittweite
20, // Startwert
QSlider::Horizontal, // Ausrichtung
mywidget ); // Elternwidget
myslider->setGeometry( 10, 10, 180, 30 );
//.... Erzeugen eines Objekts zur Anzeige von LCD-Nummern
QLCDNumber* mylcdnum = new QLCDNumber( 2, // Ziffernzahl
mywidget ); // Elternwidget
mylcdnum->setGeometry( 60, 50, 80, 50 );
mylcdnum->display( 20 ); // zeige Startwert an
// Verbinde Schiebebalken und Nummernanzeige
QObject::connect( myslider, SIGNAL( valueChanged( int ) ),
mylcdnum, SLOT( display( int ) ) );
// Zwei Buttons zum schrittweisen Erh�hen und
// Erniedrigen der Schiebebalken-Werte
QPushButton* decrement = new QPushButton( "<", mywidget );
decrement->setGeometry( 10, 110, 50, 30 );
decrement->setFont(QFont("Times", 18, QFont::Bold) );
decrement->setPaletteBackgroundColor( Qt::red );
QPushButton* increment = new QPushButton( ">", mywidget );
increment->setGeometry( 140, 110, 50, 30 );
increment->setFont(QFont("Times", 18, QFont::Bold) );
increment->setPaletteBackgroundColor( Qt::green );
// Verbinde das clicked()-Signal der Buttons mit den Slots, die
// den Schiebebalken-Wert erh�hen bzw. erniedrigen
QObject::connect( decrement, SIGNAL( clicked() ),
myslider, SLOT( subtractStep() ) );
QObject::connect( increment, SIGNAL( clicked() ),
myslider, SLOT( addStep() ) );
myapp.setMainWidget( mywidget );
mywidget->show();
return myapp.exec();
}
schiebbalken.cpp: In function ‘int main(int, char**)’:
schiebbalken.cpp:18: error: ‘Horizontal’ is not a member of ‘QSlider’
schiebbalken.cpp:37: error: ‘class QPushButton’ has no member named ‘setPaletteBackgroundColor’
schiebbalken.cpp:42: error: ‘class QPushButton’ has no member named ‘setPaletteBackgroundColor’
schiebbalken.cpp:51: error: ‘class QApplication’ has no member named ‘setMainWidget’
make: *** [schiebbalken.o] Fehler 1
Wie gesagt, ich möchte mittels diesem Quellcode den Einsteig erreichen. Die QT-Doku ist für mich noch nicht überschaubar.
Über Hilfe würde ich mich freuen!
Terep