嵌入式爱好者

qt程序添加背景

2017-5-26 17:43| 发布者: 飞凌-chongzi| 查看: 1090| 评论: 0

类目: AM335x系列产品  >  Linux     文档编号: 120

给自编的qt程序添加背景可以美化qt程序的外观,现介绍两种添加背景的方法:
1、如果单纯拷到板子上运行显示背景,可以重写paintEvent()事件,在该事件中用画笔QPainter的方式画整个背景,该方法在把程序添加到桌面后背景无法正常显示。
   void MainWindow::paintEvent(QPaintEvent *event)
{
   QPainter painter(this);
   painter.drawPixmap(0,0,width(),height(),QPixmap("./11.png"));
}
经验证png格式的图片可以正常显示,其他格式的例如jpg格式是无法显示的
2、使用样式表,该方式将图片作为资源文件添加到工程中,通过读取资源文件完成背景的设置。该方式在把程序添加到桌面后依然可以正常显示。下面简介一下步骤:
(1)把背景图片作为Qt资源文件添加到项目中,在资源文件中添加前缀/image,然后将图片添加进来如下图:

注:先点击Add Prefix添加前缀,再点Add Files添加图片文件

(2)Qt样式表可以存放以.qss为后缀的文件,所以可以在程序中调用不同的.qss文件实现不同背景的替换。在资源文件中添加“/qss”前缀,再添加资源文件,在左侧细目列表处右击添加文件,选择General中的文本文档,命名为my.qss,可以多添加几个。然后参照添加图片的方法将此文件添加到/qss前缀下。

然后编辑此文本文档,下面的代码仅供参考:

然后在MainWindow的构造函数中调用此文档即可,如下:

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    QFile file(":/qss/my.qss");

    file.open(QFile::ReadOnly);

    QString styleSheet=tr(file.readAll());

    qApp->setStyleSheet(styleSheet);

}

这样就可以将图片设置为背景图案了


已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 15:08

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部