qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小,急求!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小,急求!相关的知识,希望对你有一定的参考价值。

参考技术A A background-image does not scale with the size of the widget. To provide a "skin" or background that scales along with the widget size, one must use border-image. Since the border-image property provides an alternate background, it is not required to specify a background-image when border-image is specified. In the case, when both of them are specified, the border-image draws over the background-image.

默认background-image 不会缩放图片以适应控件的大小。
如果要提供一个皮肤或背景图片以自动适应控件大小,
必须也只能用border-image属性。
因为border-image已经设置了可用的背景图片,
所以使用了border-image后,没必要再指定background-image。
如果同时指定了两个属性,那么将会使用border-image 绘制覆盖掉background-image。

例子中的
QMainWindow > .QWidget
background-color: gainsboro;
background-image: url(:/images/pagefold.png);
background-position: top right;
background-repeat: no-repeat


把上面的改成:
QMainWindow > .QWidget
background-color: gainsboro;
border-image: url(:/images/pagefold.png);

就能实现你要的效果了,自动将pagefold.png拉伸填满整个背景。本回答被提问者采纳

qt中怎样在stylesheet中设置按钮的背景色

  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中进行,方便简单。
参考技术A Qt5 QPlainTextEdit设置背景颜色代码如下:
codeeditor->setStyleSheet("background-color:lightYellow;");
文字的颜色设置:
QPlainTextEdit edit;
QPalette p = edit.palette();
p.setColor(QPalette::Active, QPalette::Base, Qt::red);
p.setColor(QPalette::Inactive, QPalette::Base, Qt::red);
edit.setPalette(p);
Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。

以上是关于qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小,急求!的主要内容,如果未能解决你的问题,请参考以下文章

关于Html背景图自适应容器大小的问题

qt里如何给button添加背景图片

qt中怎样在stylesheet中设置按钮的背景色

html中如何使背景图铺满整个网页?

怎样给QT窗体添加背景,还有按钮怎么添加图片?

QT添加背景图片的方法图解步骤