很多地方都有介绍一个小控件如何创建,在这里介绍下在项目中创建小控件要注意的地方,直接上程序:
if( m_pICIWinCtl == NULL )
{QStringList letterPixmap;
QFont font;
font.setPixelSize (20);
letterPixmap << "./image/bn_normal.png" << "./image/bn_select.png" << "./image/bn_press.png";
QBrush brush(QColor(255, 255, 255, 255)); //画白色
brush.setStyle(Qt::SolidPattern); //实线图案
QBrush brush1(QColor(106, 104, 100, 255));
brush1.setStyle(Qt::SolidPattern);
QPalette palette; //调色板
palette.setBrush(QPalette::Active, QPalette::WindowText, brush); //活动的
palette.setBrush(QPalette::Inactive, QPalette::WindowText, brush); //不活动的
palette.setBrush(QPalette::Disabled, QPalette::WindowText, brush1);
m_pICIWinCtl = new ICIQTBASEGUI::CICIWinCtl();
m_pICIWinCtl->InsertCtl(MM_CASE_UNIT_QUERYMODE_LB ,ICIQTBASEGUI::enum_winctl_type_qlabel,m_pFatherWin,"QueryModelb","查询方式",
20,20,100,40,font,letterPixmap,palette);
m_pICIWinCtl->InsertCtl(MM_RECORD_UNIT_QUERY_BT ,ICIQTBASEGUI::enum_winctl_type_cbutton,m_pFatherW in,"Querybt","查询",
130 ,20,100,40,font,letterPixmap,palette);
connect((QObject *)m_pICIWinCtl->GetCtlHandle(MM_RECORD_UNIT_QUERY_BT), SIGNAL (clicked ()), this, SLOT (ON_BtnTest( )));
这是实现控件的代码,前面部分介绍了控件所在窗口的一些属性,主要是后面的两行;
m_pICIWinCtl->InsertCtl(MM_RECORD_UNIT_QUERY_BT ,ICIQTBASEGUI::enum_winctl_type_cbutton,m_pFatherWin,"Querybt","查询",
130 ,20,100,40,font,letterPixmap,palette);
m_pICIWinCtl是在控件管理类下的一个指针,项目中会将创建控件的一些指针,函数等组成一个总类,这就是控件管理类;
InsertCtl()添加控件的函数;
MM_CASE_UNIT_QUERYMODE_LB 这个是在本窗口的实现类下控件的ID;
enum_winctl_type_qlabel 这个是在控件管理类下控件的ID;
m_pFatherWin 父窗口的指针;
"QueryModelb","查询方式" 名称;
20,20,100,40 控件位置;
font 字体;
letterPixmap 控件图标的路径;
palette 着色;
从上面可以看出,创建一个控件图标所需要的就是这些,很明显,会比写一个小程序创建一个图标要多一些内容;
connect((QObject *)m_pICIWinCtl->GetCtlHandle(MM_RECORD_UNIT_QUERY_BT), SIGNAL (clicked ()), this, SLOT (ON_BtnTest( )));
通过上面信号和槽可以实现控件的功能,这里和平时的小程序是差不多的!