我想使用Soundcloud API在我的应用程序中播放公共声音.在网上进行了一些搜索之后,我找到了一种方法,但我不能让我的代码工作.这是我尝试播放声音的代码:
NSString *publicTrackUrlString = @"https://soundcloud.com/miroslav-osipovic/the-cat-empire-the-lost-song";
NSString *urlString = [NSString stringWithFormat:@"%@?client_id=64a52bb31abd2ec73f8adda86358cfbf", publicTrackUrlString];
[SCRequest performMethod:SCRequestMethodGET
onResource:[NSURL URLWithString:urlString]
usingParameters:nil
withAccount:nil
sendingProgressHandler:nil
responseHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSError *playerError;
player = [[AVAudioPlayer alloc] initWithData:data error:&playerError];
[player prepareToPlay];
[player play];
}];
Run Code Online (Sandbox Code Playgroud) 我想在两点之间的 QLabel 中以编程方式添加线。根据我的发现,似乎唯一的方法是将 QWidget 子类化以更改 PaintEvent() 保护方法。
因此,我从 QWidget 创建了一个新类“QLineObject”。这是我的头文件:
class QLineObject : public QWidget
{
Q_OBJECT
public:
QLineObject();
QLineObject(Point from, Point to);
protected:
void paintEvent(QPaintEvent *event);
private:
Point fromPoint;
Point toPoint;
};
Run Code Online (Sandbox Code Playgroud)
和实现文件:
QLineObject::QLineObject()
{
Point point;
point.x = 0.0;
point.y = 0.0;
fromPoint = point;
toPoint = point;
}
QLineObject::QLineObject(Point from, Point to)
{
fromPoint = from;
toPoint = to;
}
void QLineObject::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawLine(fromPoint.x, fromPoint.y, toPoint.x, toPoint.y);
}
Run Code Online (Sandbox Code Playgroud)
问题来了。我找不到如何在我的主窗口中添加这个小部件。如果我创建 QLineObject 的新实例并调用 show(),它会弹出一个新窗口。我确定我只是错过了一些东西。有人愿意帮助我吗?我想知道如何从我的主窗口构造函数的其他地方创建和添加它。
谢谢!