• 12348阅读
  • 5回复

求教QFrame设置背景图片问题 [复制链接]

上一主题 下一主题
离线kummar
 
只看楼主 倒序阅读 楼主  发表于: 2010-05-30
在QFrame内实例了一些部件为什么我对QFrame设置背景图片时,也会对它里面的部件设置同样的背景图片。
这部份代码是这样的:
MyDialog::creatdialog()
{
     menuFrame=new QFrame(this);
   menuFrame->setStyleSheet("background-image: url(:/image/menu.png)}");
   menuFrame->setGeometry(QRect(0,0,240,320));
   openBtn=new QPushButton(menuFrame);
   openBtn->setText(tr("Open"));
   openBtn->setGeometry(QRect(0,290,60,30));
   returnBtn=new QPushButton(menuFrame);
   returnBtn->setText(tr("Return"));
   returnBtn->setGeometry(QRect(180,290,60,30));
   scrollArea=new QScrollArea(menuFrame);
   scrollArea->setGeometry(QRect(0,30,240,260));
   btnFrame=new QFrame;
   btnFrame->resize(230,250);

}
menu.png是一个全局的背景图片,本来是想对menuFrame设置全局背景的,但里运行程序后,结果里面的其它部件openBtn,returnBtn,btnFrame也显示相同的背景图片,不知道这是什么原恩,请大侠指点一下,谢谢
离线benbenmajia

只看该作者 1楼 发表于: 2010-05-31
menuFrame->setStyleSheet("background-image: url(:/image/menu.png)}");
你换另外一种方法来设置背景图片
安然.....
离线磐石
只看该作者 2楼 发表于: 2010-05-31
使用QSS设置背景图片

控件->setStyleSheet("background-image:url(./pic/new_images/start_jiankong.png)");

这样做的一个缺点是一旦在一个控件中使用StyleSheet了,其中的子控件就全部会继承,也就是在上面显示主控件的背景了。在网上看到可以通过*{}的方式防止继承,但我试了下,没成功,不知道到底行不行。

不怕做不到,只怕想不到
离线dbzhang800

只看该作者 3楼 发表于: 2010-05-31
这个问题建议直接阅读manual中 conflict resolution 一节

http://doc.qt.nokia.com/4.6/stylesheet-syntax.html#conflict-resolution
离线benbenmajia

只看该作者 4楼 发表于: 2010-06-01
回 3楼(dbzhang800) 的帖子
张sir,你那里有没有下好的manual?给我传一份吧,19861015kang@163.com
安然.....
离线磐石
只看该作者 5楼 发表于: 2010-06-01
回 4楼(benbenmajia) 的帖子
Qt Assistant不是QT的manual吗?
不怕做不到,只怕想不到
快速回复
限100 字节
 
上一个 下一个