主题 : 在Qtopia2.2中可以垂直显示的QProgressBar 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 23357
精华: 0
发帖: 50
金钱: 250 两
威望: 50 点
贡献值: 0 点
综合积分: 100 分
注册时间: 2010-06-18
最后登录: 2017-09-13
楼主  发表于: 2010-08-14 11:44

 在Qtopia2.2中可以垂直显示的QProgressBar

将水平显示的QProgressBar改成垂直显示  同时去除了在LCD中快速填充时可能出现的动态闪烁
附件设置隐藏,需要回复后才能看到
级别: 侠客
UID: 23357
精华: 0
发帖: 50
金钱: 250 两
威望: 50 点
贡献值: 0 点
综合积分: 100 分
注册时间: 2010-06-18
最后登录: 2017-09-13
1楼  发表于: 2010-08-14 11:52
                     QPalette pal;
        QColorGroup cg;
        cg.setColor( QColorGroup::Foreground, black );
        cg.setColor( QColorGroup::Button, QColor( 236, 233, 233) );
        cg.setColor( QColorGroup::Light, white );
        cg.setColor( QColorGroup::Midlight, QColor( 245, 244, 244) );
       cg.setColor( QColorGroup::Dark, QColor( 118, 117, 117) );
       cg.setColor( QColorGroup::Mid, QColor( 157, 155, 155) );
        cg.setColor( QColorGroup::Text, black );
       cg.setColor( QColorGroup::BrightText, white );
       cg.setColor( QColorGroup::ButtonText, black );
       cg.setColor( QColorGroup::Base, white );
       cg.setColor( QColorGroup::Background, white );
        cg.setColor( QColorGroup::Shadow, black );
       cg.setColor( QColorGroup::Highlight, QColor( 0, 200, 0) );
       cg.setColor( QColorGroup::HighlightedText, white );
       pal.setActive( cg );
    cg.setColor( QColorGroup::Foreground, black );
    cg.setColor( QColorGroup::Button, QColor( 236, 233, 233) );
    cg.setColor( QColorGroup::Light, white );
    cg.setColor( QColorGroup::Midlight, white );
    cg.setColor( QColorGroup::Dark, QColor( 118, 117, 117) );
    cg.setColor( QColorGroup::Mid, QColor( 157, 155, 155) );
    cg.setColor( QColorGroup::Text, black );
    cg.setColor( QColorGroup::BrightText, white );
    cg.setColor( QColorGroup::ButtonText, black );
    cg.setColor( QColorGroup::Base, white );
    cg.setColor( QColorGroup::Background, white );
    cg.setColor( QColorGroup::Shadow, black );
    cg.setColor( QColorGroup::Highlight, QColor( 0, 170, 0) );
    cg.setColor( QColorGroup::HighlightedText, white );
    pal.setInactive( cg );
    cg.setColor( QColorGroup::Foreground, QColor( 128, 128, 128) );
    cg.setColor( QColorGroup::Button, QColor( 236, 233, 233) );
    cg.setColor( QColorGroup::Light, white );
    cg.setColor( QColorGroup::Midlight, white );
    cg.setColor( QColorGroup::Dark, QColor( 118, 117, 117) );
    cg.setColor( QColorGroup::Mid, QColor( 157, 155, 155) );
    cg.setColor( QColorGroup::Text, black );
    cg.setColor( QColorGroup::BrightText, white );
    cg.setColor( QColorGroup::ButtonText, QColor( 128, 128, 128) );
    cg.setColor( QColorGroup::Base, white );
    cg.setColor( QColorGroup::Background, white );
    cg.setColor( QColorGroup::Shadow, black );
    cg.setColor( QColorGroup::Highlight, QColor( 0, 170, 0) );
    cg.setColor( QColorGroup::HighlightedText, white );
    pal.setDisabled( cg );
    for(int i=0; i<3; i++){
        ProgressBar = new MyProgressBar(this);
            ProgressBar->setGeometry( QRect( 20+i*90, 110, 30, 100 ) );
            ProgressBar->setMaximumSize( QSize( 100, 1000 ) );
        ProgressBar->setTotalSteps(100);
        ProgressBar->setProgress(10+i*30);
            ProgressBar->setFrameShape( QProgressBar::Box );
            ProgressBar->setFrameShadow( QProgressBar::Sunken );
        ProgressBar->setBackgroundOrigin( QProgressBar::WidgetOrigin );
        ProgressBar->setIndicatorFollowsStyle( FALSE );
        ProgressBar->setCenterIndicator( TRUE );
            ProgressBar->setPalette( pal );
    }
    // 以上是在窗口构造函数中动态产生3个垂直的进度条代码
级别: 侠客
UID: 23357
精华: 0
发帖: 50
金钱: 250 两
威望: 50 点
贡献值: 0 点
综合积分: 100 分
注册时间: 2010-06-18
最后登录: 2017-09-13
2楼  发表于: 2010-08-14 11:57
    for(int i=0; i<3; i++){
        ProgressBar[i] = new MyProgressBar(this);
            ProgressBar[i]->setGeometry( QRect( 20+i*90, 110, 30, 100 ) );
            ProgressBar[i]->setMaximumSize( QSize( 100, 1000 ) );
        ProgressBar[i]->setTotalSteps(100);
        ProgressBar[i]->setProgress(10+i*30);
            ProgressBar[i]->setFrameShape( QProgressBar::Box );
            ProgressBar[i]->setFrameShadow( QProgressBar::Sunken );
        ProgressBar[i]->setBackgroundOrigin( QProgressBar::WidgetOrigin );
        ProgressBar[i]->setIndicatorFollowsStyle( FALSE );
        ProgressBar[i]->setCenterIndicator( TRUE );
            ProgressBar[i]->setPalette( pal );
        needflag[i]=FALSE;
    }
//前面的有段代码上传和显示不一致 改一下
级别: 侠客
UID: 23357
精华: 0
发帖: 50
金钱: 250 两
威望: 50 点
贡献值: 0 点
综合积分: 100 分
注册时间: 2010-06-18
最后登录: 2017-09-13
3楼  发表于: 2010-08-14 12:35
    for (int i=0; i<3; i++){
        p[i]=ProgressBar[i]-> progress();
        //p[i]+= rand()%10;
        if (needflag[i]){
            ProgressBar[i]->setProgress(--p[i]);
        }else{
            ProgressBar[i]->setProgress(++p[i]);
        }
        if (p[i]<=0)   needflag[i]=FALSE;
        if (p[i]>=100) needflag[i]=TRUE;
    }
//动态演示