电商网站用什么做的,网站注册可以免费吗,内容型网站的运营,网站设计与网页配色实例精讲一. 简介 在Qt中使用信号和槽机制来完成对象之间的协同操作。简单来说#xff0c;信号和槽都是函数#xff0c;比如按下窗口上的一个按钮后想要弹出一个对话框#xff0c;那么就可以将这个按钮的单击信号和我们定义的槽关联起来#xff0c;在这个槽中可以创建一个对话框信号和槽都是函数比如按下窗口上的一个按钮后想要弹出一个对话框那么就可以将这个按钮的单击信号和我们定义的槽关联起来在这个槽中可以创建一个对话框并且显示它。这样当单击这个按钮时就会发射信号进而执行我们的槽来显示一个对话框。 实际上我们一般需要自己实现的是槽函数。槽函数即接收到信号后所要执行的动作。
二. 声明
/** 使用关键字signals来声明信号函数*/
signals:void sig_updateNtpTime(QString *time);/** 使用关键字slots来声明槽函数。* 一般槽函数需要指明权限public/private/protected等*/
public slots:void slot_receiveTime(QString *time);注意 槽一般使用slots关键字进行修饰Qt 4中必须使用Qt 5以后使用新connect语法时可以不用为了与一般函数进行区别建议使用
三. 信号的类别
1基于部件对象可以使用其类中自带的信号比如按钮部件其类中自带的信号 /* * 1clicked(): 被点击* 2) clicked(bool)被点击区分是否被选中一般在单选框部件中使用* 3pressed(): 按钮被按下* 4released(): 按钮被松开*/2自定义信号
/** 使用关键字signals来自定义信号*/
signals:void sig_updateNtpTime(QString *time);
四. 信号和槽的关联方式
1. 使用connect()函数关联
// 函数原型
QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
// connect()函数中的四个参数分别是发送信号的对象、发送的信号、接收信号的对象和要执行的槽。信号触发形式
1使用部件对象自带的信号
connect(ui-button, SIGNAL(clicked()), this, SLOT(slot_exitsCardsDevice()));
// 当点击按钮button时触发信号--执行槽函数 slot_exitsCardsDevice().
2使用自定义的信号
connect(ui-functionBtn_1, SIGNAL(sig_mouseReleaseEvent()), this, SLOT(slot_functionBtn_1_clickedX()));//使用关键字emit来触发自定义信号emit sig_mouseReleaseEvent();//执行后触发槽函数 slot_functionBtn_1_clickedX()
2. 自动关联 在设计模式中的UI主设计区选择需要操作的部件右击在弹出的菜单上选择“转到槽”根据需求选择对应的槽函数。 自动关联就是将关联函数整合到槽命名中。 例如on_pushButton_clicked()就是由字符“on”和发射信号的部件对象名还有信号名组成。这样就可以去掉那个connect()关联函数了。每当pushButton被按下就会发射clicked()信号然后就会执行on_pushButton_clicked()槽。
//对名称为 pushButton_save 的按钮进行的 按下和释放 动作的槽函数
void frmTelBook::on_pushButton_save_pressed()
{//
}void frmTelBook::on_pushButton_save_released()
{//
}
注意一般自动关联方式的槽函数数目较少选择性叫少。