C
hi problem gelöst
ich hatte in playlist ne instanz von data aufgemacht ...diese enthält natürlich den wert der variable plpfad nicht ..wird ja ne neue angelegt ...ergo kein wert vorhanden
ich übergebe beim aufruf von playlist in
#include <qapplication.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qslider.h>
#include <qlcdnumber.h>
#include "playlist.hpp"
#include "player.hpp"
#include "data.hpp"
using namespace std;
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QWidget *mw = new QWidget();
QPushButton *q = new QPushButton("Quit", mw);
QPushButton *p = new QPushButton("Play", mw);
QPushButton *s = new QPushButton("Stop", mw);
QLineEdit *le= new QLineEdit("",mw);
QLCDNumber *volValue = new QLCDNumber(mw);
QLCDNumber *posValue = new QLCDNumber(mw);
QSlider *slidevol = new QSlider(mw);
QSlider *slidepos = new QSlider(mw);
slidevol->setOrientation(Qt::Horizontal);
slidevol->setCaption("Volume");
slidepos->setOrientation(Qt::Horizontal);
slidepos->setCaption("Position");
volValue->setNumDigits(3);
posValue->setNumDigits(30);
Player *pl = new Player(slidevol,slidepos,volValue);
Data *data = new Data();
Playlist *playlist = new Playlist(data);
QObject::connect(q,SIGNAL(clicked()),pl,SLOT(stop_slot()));
QObject::connect(q,SIGNAL(clicked()),&app,SLOT(quit()));
//QObject::connect(p,SIGNAL(clicked()),pl,SLOT(play_slot()));
QObject::connect(p,SIGNAL(clicked()),playlist,SLOT(reader_slot()));
QObject::connect(le,SIGNAL(textChanged(const QString&)),data,SLOT(setPlPfad_slot(const QString&)));
QObject::connect(s,SIGNAL(clicked()),pl,SLOT(stop_slot()));
QObject::connect(slidevol,SIGNAL(valueChanged(int)),pl,SLOT(setVolume_slot(int)));
QObject::connect(slidepos,SIGNAL(valueChanged(int)),pl,SLOT(setPos_slot(int)));
QObject::connect(slidepos,SIGNAL(valueChanged(int)),posValue,SLOT(display(int)));
QVBoxLayout *tl = new QVBoxLayout(mw);
QHBoxLayout *bl = new QHBoxLayout();
bl->addWidget(q);
bl->addWidget(p);
bl->addWidget(s);
bl->addWidget(le);
bl->addWidget(slidevol);
bl->addWidget(volValue);
bl->addWidget(slidepos);
bl->addWidget(posValue);
tl->addLayout(bl);
mw->setCaption("PlayerGui");
mw->show();
int result = app.exec();
delete q;
delete p;
delete s;
delete le;
delete slidevol;
delete slidepos;
delete tl;
delete bl;
delete pl;
delete playlist;
delete data;
delete volValue;
delete posValue;
return result;
}
der klasse playlist einen zeiger auf die instanz von data...ergo es wird mit ein und der selben variable gearbeitet
könnte man plPfad auch static machen? ...dann könnte man doch beliebig viele instanzen aufmachen und die werte sind immer gleich oder?
grüße