Qt 4中如何为对话框设置背景?说说我总结的方法

问:在Qt4中如何为对话框设置背景?

答:这个问题值得总结一下。大致有以下的思路和方法:

1.重写paintEvent()事件

在该事件中用画笔QPainter重画整个背景。该方法比较复杂,不建议初学者采用。

2.使用调色板QPalette

   //以下代码中pWidget为指向要设置的widget的指针。
     QPalette palette = pWidget->palette();
     palette->setBrush(QPalette::Active,QPalette::Window,QBrush(Qt::red))
     pWidget->setPalette(palette);
 pWidget->setAutoBackground(true);                          

推荐使用这种方法,大家可以查看一下setBrush()方法的定义:

            Palette::setBrush ( ColorGroup group, ColorRole role, const QBrush & brush )  

这个是一个重载版本,最为重要的是第二个参数,可以设置许多不同的类型。举例来说,  如果pWidget指向的是一个QListWidget或者QTextEdit对象,如果把第二个参数设置成QPalette::Text,则是设置其中文字的颜色如果第二个参数QPalette::BrightText,则是设置该对象被选中时,其文字的颜色;如果第二个参数QPalette::Bright表示设置选中该对象时,高亮背景的颜色或者图片。该函数的功能是很强大的。

3.使用样式表。

            pWidget->setStyleSheet("background-color:blue;");  //设置背景颜色
     pWidget->setStyleSheet("background-image:url(:/folder/show.bmp);"); //设置背景图片

此外,还有一些很有意思的方法,比如用setHtml(),insetHtml()这种用HTML语言的方式来指定的等等,大家可以多查查帮助文档搜索一下

4.具体例子

     //设置为固定颜色
     QPalette pal = pWidget->palette();
     pal.setColor(QPalette::Background, QColor(0,0,0)); //黑色
     pWidget->setPalette( pal );
     //背景图片
     QPalette pal = pWidget->palette();
     pal.setBrush( QPixmap(图片文件名) ); //黑色
     pWidget->setPalette( pal );

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值