Qt之对话框消失动画( 二 )


6、着色
注释中的代码也可以进行着色,但是窗体的一些特殊样式不能完成,因此使用来完成背景色修改
1 static const QString c_szStyleSheet = "QWidget{background-color:%1;\2border:1px solid %2;border-top:0;border-bottom-left-radius:3px;\3border-bottom-right-radius:3px;background-image: url();}";
1 void GMPOperateTip::setBackgroundColor(const QColor & color)2 {3//if (!m_pColorize)4//{5//m_pColorize = new QGraphicsColorizeEffect(this);6//m_pColorize->setStrength(1);7//8//setGraphicsEffect(m_pColorize);9//}10//m_pColorize->setColor(color);11 12QColor border = color;13border.setAlpha(255 * 0.1);14QString borderRgba = QString("rgba(%1,%2,%3,%4)").arg(border.red()).arg(border.green()).arg(border.blue()).arg(border.alpha());15setStyleSheet(c_szStyleSheet.arg(color.name()).arg(borderRgba));16 }
7、快捷调用接口,该接口都是类的静态方法可以直接调用
View Code
8、测试,由于测试代码较多,我只贴出2个
1 void tip::on_pushButton_success_clicked()2 {3GMPOperateTip::Success(this, QStringLiteral("测a试o?,ê?测a试o?"), 1000, 1000);4 }5 6 void tip::on_pushButton_warning_clicked()7 {8GMPOperateTip::Waring(this, QStringLiteral("测a试o?,ê?测a试o?"), 1000, 1000);9 }