QT 类及其实现效果(2)--QPalette和扩展对话框

一、可扩展对话框
     在主窗体中创建两个窗体,一个是基本的部分,另一个部分是扩展的部分
     在主窗体中
      layout->setSizeConstraint(QLayout::SetFixedSize)
      保证了对话框的尺寸保持相对固定
      在基本窗体的切换按钮,连接一个槽来控制扩展部分的show和hide.
二、改变控件的颜色
      利用QPalette类

     认识QPalette


      在QComboBox类中,添加颜色选择条目
      QStringList colorList = QColor::colorNames();
           QString color;
          foreach(color,colorList)
          {
            QPixmap pix(QSize(70,20));
           pix.fill(QColor(color));
           combobox->addItem(QIcon(pix),NULL);
           combobox->setIconSize(QSize(70,20));
           combobox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
          }
      使用QPalette
      p.setColor(QPalette::Window,color);
     contentFrame->setPalette(p);
      QComboBox在选择条目时,会发送信号activated(int)

     最终效果

     QPalette::Button实际效果只改变了按钮边框的颜色。
三、窗体的淡入淡出效果
      实现:将原窗体上面加入一个颜色面板,一般为白色。然后用一个定时器
      定时地减去一部分颜色面板的alpha通道值。当alpha通道值为0时,面板就完全
      透时,这样就实现了淡入淡出。
      细节:颜色面板要根据不同的父对象,构建自己的大小,并且要岀除原来的面板。 
      resize(parent->size());
       setAttribute(Qt::WA_DeleteOnClose);
      在paintEvent中,填充颜色面板自己的颜色

     QColor semiTransparentColor = startColor;
     semiTransparentColor.setAlpha(currentAlpha);
     painter.fillRect(rect(), semiTransparentColor); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值