我一直試圖將此pushButton連接到播放已編碼媒體的函數一段時間。它給出了相同的錯誤。是的,我在類中包含了Q_Object。這是怎麼回事爲什麼我的插槽沒有在qt C++中找到?
在我的主要window.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
mediafile = new Player;
connect(ui->pushButton, SIGNAL(pressed()),mediafile,SLOT(playFile(mediafile)));
}
MainWindow::~MainWindow()
{
delete ui;
}
我有Q_OBJECT在我的課,但我得到一個錯誤說
QObject::connect: No such slot Player::playFile(mediafile) in ../musicplayer/mainwindow.cpp:12
QObject::connect: (sender name: 'pushButton')
我不明白爲什麼我得到這個我在Player命名空間類中有一個名爲playFile的函數
#ifndef PLAYER_H
#define PLAYER_H
#include <QMediaPlayer>
#include <QDebug>
class Player : public QMediaPlayer
{
Q_OBJECT
public:
Player();
~Player();
public slots:
void playFile(Player *);
private:
//Player file;
};
#endif // PLAYER_H
這裏是實現。
#include "player.h"
#include "mainwindow.h"
Player::Player() {
}
Player::~Player(){
//delete file;
}
void Player::playFile(Player* file){
file->setMedia(QUrl::fromLocalFile("Average White Band - Overture.mp3"));
file->setVolume(50);
file->play();
}
這是主窗口的頭文件。有什麼我失蹤,甚至可能是關於qt的基礎知識
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <player.h>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Player *mediafile;
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
最後,如果你有更簡單的方法,我想聽到它的傢伙。 但是,只是告訴我我在這裏做了什麼錯誤,所以我知道以後..
是什麼'file'? – eyllanesc
它是我用於該功能的參數的名稱 – jamiroquai93
當您在插槽中使用參數是從信號接收數據時,如果您意識到該參數不合適。 – eyllanesc