![db75c1617a7ab702a8b860526b56c7fa.png](https://i-blog.csdnimg.cn/blog_migrate/f9e6cbe230f0e4984f16c295500c441d.jpeg)
【实例】Qt创建窗体下拉框并改变窗体颜色:QPalette、QColor、QPixmap、QSize、QIcon、QStringList、QString
本例是想创建一个颜色下拉框(颜色是自动从QColor中添加的),当选择某个颜色时,改变对应窗体(控件)的颜色(背景色、字体颜色等)。
主要函数:
1、创建颜色下拉框
void fillColorList( QComboBox * combobox )
{
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 );
}
}
2、连接信号和槽函数
connect( pWindowComboBox, SIGNAL( activated( int ) ), this, SLOT( slotWindow() ) );
3、槽函数实现
void Palette::slotWindow()
{
QStringList colorList = QColor::colorNames();
QColor color = QColor( colorList[ pWindowComboBox->currentIndex() ] );
QPalette p = pContentFrame->palette();//每个窗体都包含一个QPalette对象
p.setColor( QPalette::Window, color );
pContentFrame->setPalette( p );
}
注:QPalette的setColor()函数设置单一颜色,而setBrush()可以设置图片;也可以设置不同的颜色主题,通过参数ColorRole。
![fb19cd260aba321edda870545890aab6.png](https://i-blog.csdnimg.cn/blog_migrate/a875559e01b15ce2f41d3824b1553be5.jpeg)
通过分享实用的计算机编程语言干货,推动中国编程到2025年基本实现普及化,使编程变得全民皆知,最终实现中国编程之崛起,这里是中国编程2025,感谢大家的支持。
原文链接:http://blog.chinaunix.net/uid-25806493-id-3343312.html