【发布时间】:2014-11-25 16:10:43
【问题描述】:
我一直在使用 QT5 for Android,我一直在努力扩展现有的类,以便我可以在任何时候单击已提升的单选按钮播放声音。
我正在使用标准的QT APP模板开始,
这是我目前所拥有的: radiowclick.h:
#ifndef RADIOWCLICK_H
#define RADIOWCLICK_H
#include <QObject>
#include <QWidget>
#include <qradiobutton.h>
class RadioWClick : public QRadioButton
{
Q_OBJECT
Public:
RadioWClick(QWidget *parent = 0);
signals:
void clicked();
private slots:
void PrivateClicked();
};
#endif // RADIOWCLICK_H
radiowclick.cpp:
#include "radiowclick.h"
#include <QtMultimedia/qsound.h>
RadioWClick::RadioWClick(QWidget *parent) :
QRadioButton(parent)
{
connect(this, SIGNAL(clicked()), this, SLOT(PrivateClicked()));
}
void RadioWClick::PrivateClicked()
{
QSound::play(":/sounds/ButtonClick.wav");
}
main.cpp: #include "radiowclick.h"...
一切都编译得很好,当我使用 vanilla 套接字和插槽时,我会听到咔哒声,但使用提升的单选按钮和私有插槽时,我没有任何乐趣。
感谢您的帮助! :)
【问题讨论】:
-
没有欢乐意味着插槽被调用,但声音没有播放,还是其他什么?您是否将该声音文件放入资源中?
-
对我投了一点反馈意见的人将不胜感激。我已经研究并尝试了几个小时的不同方法,我只是在万不得已的情况下才提出这个问题,这似乎是一个对其他人有用的问题。
-
声音文件在资源文件中,正如我在原始帖子中提到的,当我使用普通 QRadioButton 类并包含 QSound::play... 对于每个信号我没有问题,只有当我尝试创建子类时,我遇到了问题。
-
你是不是在给出答案后更改了这里的代码?这不是好的做法。我们看不出是什么错误。
标签: qt class subclass slots qradiobutton