我正在尝试编写一个程序,用声音进行一些操作。我的问题是我有 3 个播放按钮和 3 个标签。我希望无论我单击“播放”按钮,都应该播放按钮附近标签中名称的声音。
我有一个没有任何参数的播放插槽。那么,如何分别连接到每个播放按钮和每个标签呢?实际上,我可以编写3个不同的播放函数,但是由于我还有一些其他函数,所以它会太长并且令人困惑。另外,我需要 3 个播放按钮,因为我想同时播放 3 个声音。
例如通过连接clicked将所有按钮的信号发送到一个插槽,然后使用QObject::发送者()找出它是哪个按钮。
假设您的按钮被命名为按钮,pushButton_2 and PushButton_3和标签标签,标签_2 and label_3分别。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(play()));
connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(play()));
connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(play()));
}
void MainWindow::play()
{
QString piece;
QObject* button = QObject::sender();
if (button == ui->pushButton)
{
piece = ui->label->text();
}
else if (button == ui->pushButton_2)
{
piece = ui->label_2->text();
}
else
{
piece = ui->label_3->text();
}
qDebug() << "Starting to play:" << piece;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)