你可以通过以下步骤在Qt中实现点击按钮弹出控制声音的框:
创建一个QPushButton对象并将其添加到QWidget或QMainWindow中。
为QPushButton对象的clicked()信号创建一个槽函数。
在槽函数中,使用QFileDialog类选择要播放的音频文件。
使用QMediaPlayer类加载选定的音频文件,并设置音量和循环选项。
使用QSlider类创建用于控制音量的滑块,并在QWidget或QMainWindow中添加它。
将QSlider对象与QMediaPlayer对象的音量属性连接起来。
显示QWidget或QMainWindow以使用户可以调整音量。
下面是示例代码:
#include <QFileDialog>
#include <QMediaPlayer>
#include <QSlider>
#include <QPushButton>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
QPushButton *button = new QPushButton("Play", this);
connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
m_player = new QMediaPlayer(this);
m_slider = new QSlider(Qt::Horizontal, this);
m_slider->setRange(0, 100);
m_slider->setValue(50);
connect(m_slider, &QSlider::valueChanged, m_player, &QMediaPlayer::setVolume);
setCentralWidget(m_slider);
}
private slots:
void onButtonClicked()
{
QString fileName = QFileDialog::getOpenFileName(this, "Open File");
if (!fileName.isEmpty()) {
m_player->setMedia(QUrl::fromLocalFile(fileName));
m_player->setVolume(m_slider->value());
m_player->setLoopCount(-1);
m_player->play();
}
}
private:
QMediaPlayer *m_player;
QSlider *m_slider;
};