Qt中的信号-槽机制大大降低了编程的耦合度;
QPushButton是按钮中最常用的一个组件;
但是QPushButton的几个信号中除了缺省参之外都没有带参:
Q_SIGNALS:
void pressed();
void released();
void clicked(bool checked = false);
也就是说,若你的槽函数与多个QPushButton的clicked()信号相连,则你的槽函数根本无法区分是哪个QPushButton发出的信号;
这在很多时候用起来也是很不方便;
“软件开发中遇到的所有问题,都可以通过增加一层抽象而得以解决”
同样的,这个问题我们可以通过子类化来解决:
class KeyButton : public QPushButton
{
Q_OBJECT
public:
explicit KeyButton(QWidget *parent = 0) : QPushButton(parent),
pauseMsecs(400), intervalMsecs(30)
{
tm = new QTimer(this);