Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2631026
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: 嵌入式

2013-08-24 09:27:38

 一、设置方法有两种,如下:
1、利用style sheet给窗体设置背景

    使用stylesheet设置背景图片还是有一些要注意的,如果是在mainwindow和dialog中,直接右键change style sheet在add resource中选择background-image或者border-image,选择资源文件中的图片就行了(前者是按像素显示图片,后者可根据窗体大小来自动缩放图片,通常使用后者,前者如果界面与图片大小不一样,则背景的显示可能就不是整张图片了),如下图:

注意:

    a、但在widget中就不行,你会发现,用同样的方法,背景并没有发生改变,而仅仅是它的子窗体背景图片发生了改变。

     那么在widget中要如何做呢,我们在widget中放置一个frame,然后对frame通过stylesheet设置背景,后面窗体里所有的部件都放在这个frame里。

 

    b、 我们知道,子窗体会继承父窗体的属性,也就是说,父窗体的背景,在子窗体中也会有,那如何让子窗体不继承父窗体的背景呢,同样的,还是在Edit Style Sheet里,需要输入如下代码:(这样就可以解决窗体中的按键、QLable等控件与主窗体的一样。)

#desktop { 
border-image: url(:/images/desktop.jpg); 

#desktop * { 
border-image:url(); 
}

desktop是你的窗体名。

 

2、不过也可以通过如下代码来实现:

      QWidget *widget = new QWidget();
     widget->setAutoFillBackground(true);
     QPalette palette;
     QPixmap pixmap(":/Resources/Penguins.jpg");
     palette.setBrush(QPalette::Window, QBrush(pixmap));
     widget->setPalette(palette);
     widget->show();

一般我喜欢使用前面去设计,在ui中进行,方便简单。
http://blog.csdn.net/sbisyju/article/details/9071495

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