button1->setProperty("value", 1)的用法

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(sender());
     
         // 设置返回值
         if  (button)
         {
             m_value = button->property( "value" ).toInt();
         }
     
         // 向下传递
         QDialog::accept();        
     }
 
     // 获取返回值
     int  value()  const
     {
         return  m_value;
     }
 
private :
     int  m_value;
...
};

你可能感兴趣的:(QT编程)