예제 #1
0
//设置按钮不同状态下的图标
void TitleBar::SetBtnIcon(QToolButton *pBtn,eBtnMoustState state,bool bInit/*=false*/)
{
    //获得图片路径
    QString strImagePath = GetBtnImagePath(pBtn,bInit);
    //创建QPixmap对象
    QPixmap objPixmap(strImagePath);
    //得到图像宽和高
    int nPixWidth = objPixmap.width();
    int nPixHeight = objPixmap.height();
    //如果状态不是无效值
    if(state!=eBtnStateNone)
    {
        if(pBtn == m_pBtnSkin)
        {
            pBtn->setIcon(objPixmap.copy((nPixWidth/3)*(state-1),0,nPixWidth/3,nPixHeight));
            //设置按钮图片大小
            pBtn->setIconSize(QSize(nPixWidth/3,nPixHeight));
        }else
        {
            /*设置按钮图片
            按钮的图片是连续在一起的,如前1/4部分表示默认状态下的图片部分,接后的1/4部分表示鼠标移到按钮状态下的图片部分
            */
            pBtn->setIcon(objPixmap.copy((nPixWidth/4)*(state-1),0,nPixWidth/4,nPixHeight));
            //设置按钮图片大小
            pBtn->setIconSize(QSize(nPixWidth/4,nPixHeight));
        }
    }
}
예제 #2
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);
        }
    }
}
예제 #3
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);
        }
    }
}