在Qt中如何为对话框(控件)设置背景?
2010-07-04 22:03
260 查看
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 );
在该事件中用画笔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 );
相关文章推荐
- Qt 4中如何为对话框设置背景?说说我总结的方法
- qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小
- VC/MFC如何设置对话框背景颜色
- 如何设置Qt程序的背景图
- Qt如何设置窗口的背景图片?
- VC2008/MFC如何设置对话框背景颜色
- 关于QT利用setStyleSheet为主控件添加背景图片,而不影响其子控件的背景设置
- 关于设置对话框的背景颜色,和设置控件的字体颜色或背景颜色
- VC中设置了对话框背景图片的情况下不能正确显示radio控件透明
- 如何设置C# treeview Web控件背景图片
- 如何设置控件的背景为透明的
- 如何设置对话框背景色以及控件颜色
- qt4:如何设置(button,lable,textedit,lineedit,progressbar等的)背景图片
- MFC学习之 对话框设置背景颜色及控件透明的方法
- QT小知识点(5) -QT中如何设置窗体的背景图片
- VC编程中如何设置对话框的背景颜色和静态文本颜色
- OnCtlColor--设置对话框或控件背景
- VS2010中如何设置IDE窗口背景颜色、MFC框架背景颜色以及对话框背景颜色?
- VC/MFC如何设置对话框背景颜色
- 安卓如何设置控件的圆角矩形背景