QT相同控件相似功能

来源:互联网 发布:网络机房综合布线系统 编辑:程序博客网 时间:2024/04/27 23:31
避免同一控件相似事件的重复代码:

一、定义:
#define MAX_ROBOT_CACHEPOINT_NUMBER 16 //有16个按钮
QPushButton *pButtonCache[MAX_ROBOT_CACHEPOINT_NUMBER]

二、获取指针:
我们通过拖控件或者代码方式生成按钮。
然后利用如下代码获取到按钮指针:
pButtonCache[0]=ui->pushButtonPoint1;
.
.
.
pButtonCache[15]=ui->pushButtonPoint16;
三、设置属性
for(int i=0;i<MAX_CACHEPOINT_NUMBER;++i)
{
pButtonCache[i]->setStyleSheet(ProgramPushButtonStyle);
pButtonCache[i]->setAutoExclusive(true);
connect(pButtonCache[i],SIGNAL(clicked()),this,SLOT(on_pushButtonPoint_clicked()));
}

四、事件
on_pushButtonPoint_clicked()
{
QObject *ClickObject=sender();
for(int i=0;i<MAX_ROBOT_CACHEPOINT_NUMBER;++i)
{
if(ClickObject==pButtonCache[i])
{
//do something
}
else
{
// do other thing
}
}
}
0 0