Głupio jest 4 dni być na forum i ciągle pytać w praktyce o to samo . Ale kto pyta nie błądzi . Cóż zaczę od kodu ( w praktyce to co przy poprzednich razach ale z usprawnieniami ) .
main.cpp
#include <QtGui>
#include <iostream>
#include "okno.hpp"
#include "QtCore"
#include <SFML/Audio.hpp>
int main( int argc, char * argv[] )
{
QApplication program( argc, argv );
QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "UTF-8" ) );
oknogl okno;
okno.show();
return program.exec();
}
oknogl.cpp
#include "okno.hpp"
#include "QtGui"
#include <SFML/Audio.hpp>
#include "QtCore"
oknogl::oknogl( )
{
setWindowTitle( "Odtwarzacz" );
setGeometry(100 , 100 , 500 , 100 );
przycisk = new QPushButton( "Wyjście", this );
start = new QPushButton("Odtwarzaj", this) ;
otzam = new QPushButton("Otwórz Plik" , this) ;
// wskaźnik stanu utworu
stan = new QSlider(Qt::Horizontal , this );
etykieta = new QLabel("" , this ) ;
//Porządkowanie Tałatajstwa
wiersz = new QHBoxLayout ;
wiersz ->addWidget(start);
wiersz ->addWidget(otzam);
wiersz->addWidget(stan);
wiersz->addWidget(przycisk);
setCentralWidget(etykieta);
wiersz->setSpacing(8);
centralWidget()->setLayout(wiersz);
connect(otzam, SIGNAL(clicked()), this , SLOT(otwieranie())) ;
if(!muzyka.Playing)
{
connect(start , SIGNAL(clicked()) , this , SLOT(graj())) ;
};
if(muzyka.Playing)
{
connect(start , SIGNAL(clicked()) , this , SLOT(przerwij())) ;
};
connect(stan , SIGNAL(sliderMoved()) ,this ,SLOT(zpol())) ;
};
/////////////////////////
// Kolejna częśc Klasy //
/////////////////////////
void oknogl::otwieranie()
{
QString plik = QFileDialog::getOpenFileName(this, tr("Otwórz Plik"), QDesktopServices::storageLocation(QDesktopServices::MusicLocation));
if(plik.isEmpty())
return ;
if(!plik.isEmpty())
{
QString * a ;
a = &plik ;
const string b = a->toStdString() ;
::muzyka.OpenFromFile( b ) ;
stan->setRange( 0 , muzyka.GetDuration() ) ;
}
};
/////////////////////////
// Kolejna częśc Klasy //
/////////////////////////
void oknogl::graj()
{
::muzyka.Play();
};
/////////////////////////
// Kolejna częśc Klasy //
/////////////////////////
void oknogl::przerwij()
{
::muzyka.Pause();
};
/////////////////////////
// Kolejna częśc Klasy //
/////////////////////////
void oknogl::zpol()
{
// Do Zrobienia .
}
i na koniec oknogl.hpp
#ifndef okno_HPP
#define okno_HPP
#include <QtGui>
#include <QApplication>
#include <SFML/Audio.hpp>
using namespace std;
extern int z ;
namespace {
sf::Music muzyka ;
};
class oknogl : public QMainWindow
{
public:
oknogl();
QHBoxLayout * wiersz ;
const QString * nazwa ;
public slots:
void otwieranie();
void graj() ;
void przerwij() ;
void zpol() ;
private:
QPushButton * przycisk;
QLabel * etykieta;
QSlider * stan ;
QPushButton * start ;
QPushButton * otzam ;
QMessageBox * blad ;
};
#endif // oknogl_HPP
Cóż niby ładnie się kompiluje i było by git . Gdyby nie to że te przyciski nie działają .
Przy okazji wyrzuca :
" Object::connect: No such slot QMainWindow::otwieranie()
oraz
Object::connect: No such slot QMainWindow::przerwij() "
I teraz nie wiem w czym jest problem ze "Słodziutką " czy "Prostą , Szybką Multimedialną " . Jako że ciągle się uczę Qt korzystałem z tego tutorialu :
http://blog.matthew.org.pl/2009/06/03/kurs-qt-czesc-1-sygnaly-sloty-i-wlasne-widgety/
Oraz dokumentacji tak więc pytam się w której części jest błąd ?