主界面设置背景一般有设置背景图片和背景颜色的需求,其实二者之间设置方法类似

目录

主界面设置背景一般有设置背景图片和背景颜色的需求,其实二者之间设置方法类似

方法一:最简单的方式是通过ui界面来设置,例如设置背景图片

方法二 :通过代码设置窗口的palette属性来实现

方法三:通过重写paintEvent事件,来设置背景图片和背景颜色

方法四:通过代码中设置样式表,其与方法一类似


首先说明一下background-image、border-image、image三种区别

background-image:简单理解就是将图片从部件的左上角开始贴图,部件的大小限制了显示图片范围;好比是我们按照部件的大小来裁剪图片

border-image:就是将贴图缩放进到部件里,部件能看到完整图片,但是此时图片会被压缩的变形

iamge:部件会按照图片的原始大小进行填充

方法一:最简单的方式是通过ui界面来设置,例如设置背景图片

在添加资源的下拉框有三种方式:

选择background-image之后会有个问题,就是窗口上的其它子部件也会贴上图,如下:

这种添加方式会让所有部件都会贴图,肯定不行;需要把background-image: url(:/image/background.png);放在#MainWindow{}里(MainWindow为主窗口的对象名),意思就是只针对主窗口设置有效,子部件无用;

设置前                                                         设置后

背景色设置和背景图片设置也是一样的道理,如果不想窗口中的部件颜色和主窗口一样,也是需要#MainWindow来设置限定范围

设置完效果如下:

方法二 :通过代码设置窗口的palette属性来实现

1)背景图片设置

QPixmap pixmap=QPixmap(":/image/background.png").scaled(this->size());
QPalette palette;
//设置主窗口背景图片
palette.setBrush(QPalette::Window,QBrush(pixmap));

2).背景颜色设置

QPalette palette;
//设置主窗口背景颜色
palette.setColor(QPalette::Window,QColor(255, 150, 30));
this->setPalette(palette);

方法三:通过重写paintEvent事件,来设置背景图片和背景颜色

1)设置背景图片

void MainWindow::paintEvent(QPaintEvent *)
{QPainter painter(this);QPixmap pixmap(":/image/background.png");painter.drawPixmap(this->rect(),pixmap);}

2)设置背景颜色

void MainWindow::paintEvent(QPaintEvent *)
{QPainter painter(this);QColor color(255, 150, 30);painter.setBrush(color);painter.drawRect(this->rect());
}

方法四:通过代码中设置样式表,其与方法一类似

1)设置主窗口背景图片

this->setStyleSheet("QMainWindow {background-image:url(:/image/background.png)}");

2).设置主窗口背景颜色

this->setStyleSheet("QMainWindow {background-color:rgb(255, 150, 30)}");

Qt的主窗口背景设置相关推荐

  1. Qt Widgets——主窗口及其主要组成部分

    Main Window and Related Classes QAction 动作类,用于当做一个菜单项或工具项插入菜单或工具栏 QActionGroup 动作组,用于管理多个动作,设置它们之间的互 ...

  2. QT/C++——主窗口和事件处理

    一.主窗口 上面就是一个主窗口,主窗口中的每一个都是Action 这次新建工程要选择mainwindow #ifndef MAINWINDOW_H #define MAINWINDOW_H#inclu ...

  3. Qt实现主窗口和子窗口的切换

    学习中遇到不明白的按F1查帮助文档! 1.根据基类QWidget派生出两个类,MainWidget和SubWidget 2.这里需要强调的一点的只有如何从子窗口切换到主窗口:因为为了把主窗口切换到子窗 ...

  4. Qt/C++主窗口和子窗口之间传递参数

    一.用信号和槽 二.在主窗口声明一个子窗口的指针,用这个指针调用子窗口的函数 dialog *pic=new dialog(); pic->getColor(QColor col); col就可 ...

  5. android 设置窗口透明效果,android - 如何将对话框窗口背景设置为透明,而不影响其边距...

    当前,我有以下对话框,我将对其项目执行扩展/折叠动画. 该对话框是通过以下代码创建的import android.support.v7.app.AlertDialog; final AlertDial ...

  6. 将Windows 8.1 系统窗口背景设置成淡绿色?

    1.右键点击开始→运行. 2.在运行中输入: regedit 按回车键之后,打开注册表编辑器. 3.依次定位到:HKEY_CURRENT_USER\Control Panel\Colors. 4.然后 ...

  7. QT设置非主窗口的背景图片和主窗口的背景图片(详细版)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.主窗口设置背景图片 二.非主窗口设置背景图片 前言 网上关于设置窗口背景图片大多数都是对于主窗口MainWindo ...

  8. Qt 设置窗口背景图片的几种方法实例

    1.在paintEvent事件中绘制图片 void Widget::paintEvent(QPaintEvent * ev) {QPainter painter(this);painter.drawP ...

  9. qt获取窗口的右上角位置_如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置...

    用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局. 但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置. 在处理子窗口鼠标事件时变的很麻烦.主 ...

最新文章

  1. mybatis-plus入坑指南
  2. FastStone Capture
  3. onSaveInstanceState在系统之后可能会杀掉Activity时调用,onStop之前
  4. mybatis一对一联表查询的两种常见方式
  5. 1-3-顺时针旋转矩阵
  6. 网易游戏回应裁员 10%;字节跳动秘密研发手机;iOS 13 beta 5 发布 | 极客头条
  7. mysql 记录操作_MySQL 记录操作
  8. NV12剪切区域时的对齐代码
  9. ug如何复制面_学习UG,要从最基础的做起,初学者必备40条技巧
  10. hc05模块android代码,Arduino使用HC05蓝牙模块与手机连接
  11. mac android usb共享网络,mac 网络共享软件 手机usb共享网络方法和技巧详解介绍
  12. python 计算gdp_菜鸟笔记Python3——数据可视化(三)世界GDP分析
  13. TensorFlow Objection Detection API使用教程
  14. 三步走,帮你整理微信运营思路
  15. 2021年,小灰都读了哪些书?
  16. 荣耀笔记本开机黑屏错误怎么U盘重装系统教学分享
  17. 莎士比亚统计最高的词频数 java,spark,rdd
  18. uniapp 使用map组件 动态自定义标记点图标及内容文字
  19. 前端 不同屏幕宽度 自适应布局 解决方案
  20. sdfasfasdf

热门文章

  1. linux xunsou_mysql中文分词全文搜索索引讯搜的安装
  2. Codeforces Round #750 (Div. 2)E. Pchelyonok and Segments (数学+DP)
  3. Java基础 DAY14
  4. 3904三极管是什么功能_为什么有时候我们在电路中串联220电阻
  5. Qt小程序之自绘震动铃铛提示控件
  6. Arduino基础入门篇30—数字温度传感器DS18B20
  7. 定义Mat类型显示未定义
  8. 电商项目之购物车设计
  9. 接口转换器故障与解决办法
  10. 基于VHDL移位寄存器程序设计