- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章在Qt中正确的设置窗体的背景图片的几种方法总结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
qt中正确的设置窗体的背景图片的方法大致有两种,下面将逐个讲解:
一. 利用stylesheet设置窗体的背景图片 。
使用stylesheet设置窗体的背景图片的时候,可以直接按照下图的操作去进行即可,如下图所示:
但是,需要注意的是:
1.在qwidget中这种方法是不行的,如果你足够细心的话,你会发现使用同样的设置背景图片的方法,背景图片其实并没有发生真实改变,但是它的子窗体背景图片是会发生改变的.
其实我们可以通过在添加一个i额qwidget来解决这个问题,即在qtdesigner中添加一个frame窗口,我们只需对这个新添加的frame窗口来进行stylesheet的字符串值即可,新添加的所有子控件都添加到这个新的frame窗口里.
2. 做过qt开发的朋友应该都知道,qt的子窗体是会继承父窗体的属性的,这就证明了为什么父窗体的背景在子窗体中也会有,这个是对这个原因的一个非常合理的解释。那么问题来了,我们怎么才能做到子窗体不继承父窗体的背景呢?
既然上面分析到了原因,那么我们就知道如何解决了,仍然打开stylesheet代码编辑界面,我们只需要将下面的几行代码输入进去即可解决这个问题,具体代码如下所示:
1
2
3
4
5
6
|
#窗体名称 {
border
-
image: url(:
/
houserentsystem
/
resources
/
test.png);
}
#窗体名称 * {
border
-
image:url();
}
|
二. 通过纯代码方式实现:
1
2
3
4
5
6
7
|
qwidget
*
widget
=
new qwidget();
widget
-
>setautofillbackground(true);
qpalette palette;
qpixmap pixmap(
":/houserentsystem/resources/test.png"
);
palette.setbrush(qpalette::window, qbrush(pixmap));
widget
-
>setpalette(palette);
widget
-
>show();
|
如果你对stylesheet比较熟悉,我个人还是建议你在在qtdesigner中直接进行编辑,这样将会省去你很多工作量,至少将少了程序中完全没必要添加的冗余代码.
以上这篇在qt中正确的设置窗体的背景图片的几种方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/yanche521/article/details/51017601 。
最后此篇关于在Qt中正确的设置窗体的背景图片的几种方法总结的文章就讲到这里了,如果你想了解更多关于在Qt中正确的设置窗体的背景图片的几种方法总结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
程序集,masm 嘿,我写了宏来打印存储在 dane1 段中的 1 字节值。 我将值除以 16,然后将提醒推送到堆栈,直到值==0。然后我弹出提醒将它们转换为 ASCII 码,并打印它们。 有人可以看
我在 Apache Geronimo 2.1.3 上有一个 Web 服务应用程序。 我正在使用 JAX-WS,使用 SOAP 1.1 注释 POJOS。 (使用 Sun JDK 1.5) 各种客户端都
我有一个数据变量,monthArray,它被多个消费者读取,并由单个定期更新程序线程定期更新数据。全部异步。 我已经考虑了这两个选项来安全地执行更新。 ArrayList tempArray
我有一组 3D 体。每个 Body 由 8 个点定义,每个点具有三个坐标。所有的物体都是立方体的或近似立方体的。我想用系统的点栅格“填充”立方体。坐标存储在简单的 data.frames 中。 我开发
我正在处理遗留代码,需要打补丁。 问题:一个古老的应用程序发送错误的 HTTP POST 请求。其中一个参数未经过 URL 编码。我知道这个参数总是排在最后而且我知道它的名字。我现在正尝试在运行在 t
我想在触摸屏幕时移动 sprite body ,但它不能发生...... -(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
这个问题在这里已经有了答案: Can a union be initialized in the declaration? (3 个答案) 关闭 7 年前。 如果它是一个struct那么它就可以完成
我正在尝试获取生成 sigsys 信号的系统调用的地址!但我从 gcc 收到以下错误: gcc emulator.c -fms-extensions error: ‘siginfo_t’ has no
当我使用 Postman 进行 API 调用时,我收到一个 JSON 对象..这是我所期望的。 但是,当我像这样与 Guzzle 进行相同的调用时: $client = new \GuzzleHttp
在编码时,出现了差异。通常在编写简单的方法或构造函数时,我经常使用表达式体技术。但是,当我产生以下内容时: public class Sample : ISample { private r
我正在使用 LibGDX 创建一个新项目。 我想做的是,我将 tmx 文件中的主体加载到工作正常的关卡中。尸体也有一个 Sprite 。 问题是,我想让用户触摸场景中的某些 body 。当他们触摸 b
我的意图:在不使用 union 的情况下循环遍历一个结构的 30 个成员,所有成员都是字符数组类型,每个成员都存储对 itoa 的调用结果。在下面的代码中,我将结构体成员命名为a-z、A-D。在调用函
我必须将我的代码段之一从 C 转换为 java。代码如下。 union commandString{ char commndStr[20]; struct{ char
#include union NumericType { float value; int intvalue; }Values; int main() { Values.va
我在此代码中收到错误: fun num(num:Int):Int { if (num > 0){ print(num % 10) return num / 10
我是一名优秀的程序员,十分优秀!