以第二种形式使用QMediaPlayer
Using QMediaPlayer in second form
本文关键字:QMediaPlayer 二种 更新时间:2023-10-16
我是Qt的新手。我有QMediaPlayer
的问题:我的程序有2种形式(主要形式和通知)。所以它有条件,如果它是真的,程序必须显示第二种形式,并以加载形式播放音乐。
main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "dialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
Dialog d;
d.musicPlay();
d.show();
return a.exec();
}
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QMediaPlayer>
#include <QUrl>
#include <QDebug>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
uix(new Ui::Dialog)
{
uix->setupUi(this);
}
void Dialog::musicPlay() const
{
QMediaPlayer pl;
pl.setMedia(QUrl::fromLocalFile("/home/jack/01.mp3"));
pl.setVolume(100);
pl.play();
qDebug()<<pl.errorString();
}
Dialog::~Dialog()
{
delete uix;
}
它不工作,但如果musicPlay()将像:
uix->label->setText("qwerty");
可以。你能帮忙解决这个问题吗?也许我必须使用插槽和信号?
这不起作用,因为您已经将pl
变量声明为保存在堆栈中的局部变量。函数结束后,堆栈变量将被销毁。
因此,您应该使用new
关键字来声明和定义pl
。
QMediaPlayer* pl = new QMediaPlayer;
pl->setMedia(QUrl::fromLocalFile("/home/jack/01.mp3"));
pl->setVolume(100);
pl->play();
相关文章:
- 将二维矢量传递给类
- 二叉排序树无法编译
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 在计算中使用二的幂有多有利可图
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 在C++中将函数压缩为两种方式
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 将值从二维数组输出到文本文件
- 有没有一种方法可以在编译时获得作用域类名
- 如何将 numpy 二维数组作为一种可以用C++读取的二进制格式存储在磁盘上
- 我应该对通用二叉搜索树中的根使用哪种类型的指针
- 您将使用哪种数据模型在 QML 中制作二维字段 100*100
- 另一种二叉搜索树的节点公式
- 二叉树的两种表示之间的区别
- 创建二维数组的两种方法的区别
- 以第二种形式使用QMediaPlayer
- 是否存在一种算法来确定二维空间中的一组点是否形成一个封闭区域
- 有没有一种方法可以从输入中找到二维数组的行和列