Chinaunix首页 | 论坛 | 博客
  • 博客访问: 920509
  • 博文数量: 40
  • 博客积分: 995
  • 博客等级: 准尉
  • 技术积分: 830
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-10 11:09
个人简介

不知道自己是码农的二流码农!

文章分类

全部博文(40)

文章存档

2013年(4)

2012年(35)

2011年(1)

分类: C/C++

2012-09-10 14:16:42

Qt创建窗体下拉框并改变窗体颜色

文档名称

Qt创建颜色下拉框并改变窗体颜色

创建时间

2012-9-10

修改时间

2012-9-10

创建人

Baifx

简介(收获)

QPaletteQColorQPixmapQSizeQIconQStringListQString

本例是想创建一个颜色下拉框(颜色是自动从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 );

}

 

注:QPalettesetColor()函数设置单一颜色,而setBrush()可以设置图片;也可以设置不同的颜色主题,通过参数ColorRole

 

 

阅读(15029) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~