class
Dialog :
public
QDialog
{
...
public
:
// 构造函数
Dialog(QWidget *parent = 0)
{
...
// 设置扩展属性
ui->button1->setProperty(
"value"
, 1);
ui->button2->setProperty(
"value"
, 2);
ui->button3->setProperty(
"value"
, 3);
ui->button4->setProperty(
"value"
, 4);
// 连接信号和槽
connect(ui->button1, SIGNAL(clicked()),
this
, SLOT(accept()));
connect(ui->button2, SIGNAL(clicked()),
this
, SLOT(accept()));
connect(ui->button3, SIGNAL(clicked()),
this
, SLOT(accept()));
connect(ui->button4, SIGNAL(clicked()),
this
, SLOT(accept()));
}
// 重载槽
void
accept()
{
// 获取信号发送者
QPushButton *button = qobject_cast<QPushButton *>(sender());
// 设置返回值
if
(button)
{
m_value = button->property(
"value"
).toInt();
}
// 向下传递
QDialog::accept();
}
// 获取返回值
int
value()
const
{
return
m_value;
}
private
:
int
m_value;
...
};