一、可扩展对话框
在主窗体中创建两个窗体,一个是基本的部分,另一个部分是扩展的部分
在主窗体中
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);