Example #1
0
//创建子部件
void TitleBar::CreateWidget()
{
    //图像标签--logo
    m_pLabelIcon = new QLabel(this);
    QPixmap objPixmap(":/res/images/360AboutLogo.png");
    m_pLabelIcon->setPixmap(objPixmap.scaled(TITLE_H,TITLE_H));
    //文本标签--标题
    m_pLabelTitle = new QLabel(this);
    m_pLabelTitle->setText(QString("360 Safe Guard V8.5"));
    //文本标签--样式版本
    m_pLabelVersion = new QLabel(this);
    m_pLabelVersion->setText(QString("Use Class Style"));
    //设置鼠标形状
    m_pLabelVersion->setCursor(Qt::PointingHandCursor);
    //按钮--更换皮肤
    m_pBtnSkin = new QToolButton(this);
    //设置初始图片
    SetBtnIcon(m_pBtnSkin,eBtnStateDefault,true);
    //按钮--菜单
    m_pBtnMenu = new QToolButton(this);
    SetBtnIcon(m_pBtnMenu,eBtnStateDefault,true);
    //按钮--最小化
    m_pBtnMin = new QToolButton(this);
    SetBtnIcon(m_pBtnMin,eBtnStateDefault,true);
    //按钮--最大化/还原
    m_pBtnMax = new QToolButton(this);
    SetBtnIcon(m_pBtnMax,eBtnStateDefault,true);
    //按钮--关闭
    m_pBtnClose = new QToolButton(this);
    SetBtnIcon(m_pBtnClose,eBtnStateDefault,true);

    //获得子部件
    const QObjectList &objList = children();
    for(int nIndex=0; nIndex < objList.count(); ++nIndex)
    {
        //设置子部件的MouseTracking属性
        ((QWidget*)(objList.at(nIndex)))->setMouseTracking(true);
        //如果是QToolButton部件
        if(0==qstrcmp(objList.at(nIndex)->metaObject()->className(),"QToolButton"))
        {
            //连接pressed信号为slot_btnpress
            connect(((QToolButton*)(objList.at(nIndex))),SIGNAL(pressed()),this,SLOT(slot_btnpress()));
            //连接clicked信号为slot_btnclick
            connect(((QToolButton*)(objList.at(nIndex))),SIGNAL(clicked()),this,SLOT(slot_btnclick()));

//            connect(((QToolButton*)(objList.at(nIndex))),SIGNAL(enterEvent()),this,SLOT(slot_btnclick()));
            //设置顶部间距
            ((QToolButton*)(objList.at(nIndex)))->setContentsMargins(0,VALUE_DIS,0,0);
        }
    }
}
Example #2
0
//创建子部件
void TitleBar::create_widget()
{
    //设置字号
    QFont ft;
    ft.setPointSize( 16 );
    //ui.label_4->setFont(ft);

    //图像标签--logo
    mp_label_icon = new QLabel( this );
    QPixmap objPixmap( ":image/res/caption_logo.bmp" );
    //QBitmap mask = objPixmap.createMaskFromColor( QColor( 255, 255, 255 ), Qt::MaskInColor );
    //objPixmap.setMask( mask );
    mp_label_icon->setPixmap( objPixmap.scaled( TITLE_H*4, TITLE_H ) );
    mp_label_icon->setMinimumSize( mp_label_icon->sizeHint() );

    //文本标签--标题
    mp_label_title = new QLabel( this );
    mp_label_title->setText( QString( "阀厅红外在线监测系统" ) );
    mp_label_title->setMinimumSize( mp_label_title->sizeHint() );
    mp_label_title->setFont( ft );

    //按钮--最小化
    mp_btn_min = new QToolButton(this);
    set_btn_icon( mp_btn_min, eBtnStateDefault, true);
    //按钮--关闭
    mp_btn_close = new QToolButton(this);
    set_btn_icon(mp_btn_close,eBtnStateDefault,true);

    //获得子部件
    const QObjectList &objList = children();
    qDebug()<<"子部件"<<objList[0];
    for(int nIndex=0; nIndex<objList.count(); ++nIndex)
    {
        //设置子部件的MouseTracking属性
        (  (QWidget*)(objList.at(nIndex)))->setMouseTracking(true);
        //如果是QToolButton部件
        if(0==qstrcmp(objList.at(nIndex)->metaObject()->className(),"QToolButton"))
        {
            //连接pressed信号为slot_btnpress
            connect( ( ( QToolButton* )( objList.at( nIndex ) ) ), SIGNAL( pressed() ), this, SLOT( slot_btnpress() ) );
            //连接clicked信号为slot_btnclick
            connect( ( ( QToolButton* )( objList.at( nIndex ) ) ), SIGNAL( clicked() ), this, SLOT( slot_btnclick() ) );
            //设置顶部间距
            (  (QToolButton*)(objList.at(nIndex)))->setContentsMargins(0,VALUE_DIS,0,0);
        }
    }
}