Qt5.15.2中加入图片资源

这篇具有很好参考价值的文章主要介绍了Qt5.15.2中加入图片资源。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

前言

以前用的Qt5.15.2之前的版本,QtCreator默认的工程文件是*.pro,现在用5.15.2创建工程默认的工程文件是CMameList.txt,当然在创建项目时,仍然可以使用pro工程文件用QtCreator打开CMakeList.txt
以前用习惯了pro文件,现在改成CMakeList很不习惯,现在我们在CMakeList.txt中加入资源文件

一、加入图片资源

1.首先,在Qt项目里创建一个目录image,然后将图片资源放image目录中
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
2.在Qt creator中创建resource file
鼠标右键项目listWidgetSplitter> Add New… > Qt > Qt Resource File > 输入文件名Resources,->next
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
3.新建资源文件.qrc
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
4.创建资源文件名Resources.qrc
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
5.把资源文件加入到你的工程中
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
6.并在CMakeLists.txt加入Resources.qrc并保存(control + s),这时左侧项目工程会自动生成Resources.qrs
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
7.左侧右键点击Resources.qrs文件添加前缀
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
8.添加图片,关联到此前缀来:
右键·Resources.qrc > Open in Editor > 选中>Add Files > 从打开的文件选择器中选择icon1.png,icon2.png,padfsplit.ico,se_center.png
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
9.添加图片,复制图片路径
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter
在代码中加入图片路径
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter

二、代码

头文件

#ifndef LISTCONTROL_H
#define LISTCONTROL_H

#include <QWidget>
#include <QListWidget>
#include <QListWidgetItem>
#include <QMenu>
#include <QSplitter>
#include <QGridLayout>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QPixmap>
#include <QImage>
#include <QIcon>
#include <QMessageBox>
#include <QPushButton>
#include <QAction>
#include <QMouseEvent>

class listControl : public QWidget
{
    Q_OBJECT
public:
    explicit listControl(QWidget *parent = nullptr);

    QListWidget* _listWgtLeft;
    QListWidget* _listWgtRight;

    QSplitter* _splitterMain;

    QMenu* _popMenuLeft;
    QMenu* _menuRight;
private:
    void initUI();

signals:

private slots:

    void onMenuPopSlot(const QPoint &pos);
};

#endif // LISTCONTROL_H

实现文件文章来源地址https://www.toymoban.com/news/detail-814442.html

#include "listControl.h"

listControl::listControl(QWidget *parent)
    : QWidget{parent}
{
    initUI();
}

void listControl::initUI()
{

    _splitterMain = new QSplitter(Qt::Horizontal, 0); //新建主分割窗口,水平分割
    _listWgtLeft = new QListWidget(_splitterMain);


    //设置样式,直接在函数中设置
    _listWgtLeft->setStyleSheet("QListWidget{border:1px solid gray; color:black; }"
                               "QListWidget::Item{padding-top:1px; padding-bottom:4px; }"
                               "QListWidget::Item:hover{background:skyblue; }"
                               "QListWidget::item:selected{background:lightgray; color:red; }"
                               "QListWidget::item:selected:!active{border-width:0px; background:lightgreen; }"
                               );

    // _listWgtLeft->setResizeMode(QListView::Adjust); //适应布局调整
    _listWgtLeft->setViewMode(QListView::ListMode);
    _listWgtLeft->setMovement(QListView::Free);
    _listWgtLeft->setContextMenuPolicy(Qt::CustomContextMenu);
    _listWgtRight = new QListWidget(_splitterMain);

    // QWidget* itemWgt = new QWidget(_listWgtLeft);

    QGridLayout* itemMainLyt = new QGridLayout;
    QHBoxLayout* itemContentLyt = new QHBoxLayout;


    QListWidgetItem *item1 = new QListWidgetItem(_listWgtLeft);
    item1->setFlags(item1->flags() | Qt::ItemIsEditable); // 设置item可编辑
    QWidget *widget = new QWidget(_listWgtLeft);
    QHBoxLayout *layout = new QHBoxLayout(widget);
    QLabel* lbl01 = new QLabel("");
    QImage* image01 = new QImage;
    image01->load(":/images/icon/pdfsplit.ico");
    lbl01->setPixmap(QPixmap::fromImage(*image01));
    lbl01->setScaledContents(true);

    QPixmap pixMapOgi01(":/images/icon/icon1.png");
    QLabel *lbl02 = new QLabel(u8"卫星轨道1测试");
    QPushButton* btn01 = new QPushButton;
    int btnWidth = btn01->width();
    int btnHeight = btn01->height();
    QPixmap pixmapFit = pixMapOgi01.scaled(btnWidth, btnHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);

    btn01->setIcon(pixmapFit);
    btn01->setStyleSheet(QString("QPushButton {background-color: transparent; }"));
    btn01->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    layout->addWidget(lbl01, 0, Qt::AlignVCenter | Qt::AlignLeft);
    layout->addWidget(lbl02);
    layout->addWidget(btn01, 0, Qt::AlignVCenter | Qt::AlignRight);
    widget->setLayout(layout);
    item1->setSizeHint(widget->sizeHint()); // 设置item大小
    // item5->setData(Qt::UserRole, 1);
    _listWgtLeft->setItemWidget(item1, widget); // 设置item控件

    _splitterMain->setStretchFactor(0, 4);
    _splitterMain->setStretchFactor(1, 6);

    _splitterMain->setWindowTitle(tr("test splitter"));
    itemMainLyt->addWidget(_splitterMain);

    setLayout(itemMainLyt);

    //右键弹出菜单
    _popMenuLeft = new QMenu(_listWgtLeft);
    QAction* addAct = new QAction(tr("add"));
    QAction* resetHidAct = new QAction(tr("reset hide"));
    QAction* cutAct = new QAction(tr("cut"));
    QAction* copyAct = new QAction(tr("copy"));
    QAction* delAct = new QAction(tr("delete"));
    _popMenuLeft->addAction(addAct);
    _popMenuLeft->addAction(resetHidAct);
    _popMenuLeft->addAction(cutAct);
    _popMenuLeft->addAction(copyAct);
    _popMenuLeft->addAction(delAct);

    connect(_listWgtLeft, &QListView::customContextMenuRequested, this, &listControl::onMenuPopSlot);
}

void listControl::onMenuPopSlot(const QPoint &pos)
{
    // _popMenuLeft->exec(QCursor::pos());
    _popMenuLeft->exec(_listWgtLeft->mapToGlobal(pos));
}

代码调用

```cpp
#include "MainWindow.h"
#include "listControl.h"
#include <QApplication>
#include <QTextCodec>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    // MainWindow w;
    // w.show();

    a.setFont(QFont("Microsoft Yahei", 9));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    qDebug() << "中文调试信息";

    QFont font("ZYSong18030" , 10);
    a.setFont(font);

    listControl* contrl = new listControl;
    contrl->show();

    return a.exec();
}

运行效果
Qt5.15.2中加入图片资源,Qt,qt,窗口分割,QSplitter


到了这里,关于Qt5.15.2中加入图片资源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt5.15.2安卓Android项目开发环境配置

    官方下载:https://download.qt.io/archive/qtcreator/4.11/4.11.2/ 镜像下载:https://mirrors.cloud.tencent.com/qt/archive/qtcreator/4.11/4.11.2/ 官方更新器内部下载 参考:https://blog.csdn.net/weixin_41013202/article/details/129957693 https://adoptium.net/zh-CN/temurin/releases/ (1) Android SDK Platform 最新版(现在是33) (2)

    2024年02月14日
    浏览(38)
  • 在线安装Qt(全网最详细图文版)--以Qt5.15.2 Windows版为例

    作者:靠普科技 时间:2023/8/18 版本:V1.0 说明:本文系作者原创,转载前请务必联系本文作者。 接触几年Qt有余,发现部分开发人员对Qt的认识远远不够,仅仅停留在表面。甚至有较少部分人认为Qt是一种开发编程语言或者将QTCreator当做Qt,这些理解都是错误的且过于片面。实

    2024年02月06日
    浏览(46)
  • VS2019+OpenCV+Qt5.15.2安装及工程配置

    目录 一、下载链接 1.1 VS2019下载安装 1.2 OpenCV下载安装 1.3 Qt5.15下载安装 二、工程环境配置 2.1 OpenCV环境配置 2.1.1  环境变量配置 2.1.2 工程属性表配置  2.1.3 重启vs测试  2.2 Qt环境配置 2.2.1 Qt Creator设置  2.2.2 VS2019配置  2.2.3 创建Qt项目 2.2.4 UI 设计配置 该文件仅 1.39 MB,是 VS

    2024年02月16日
    浏览(51)
  • [QT5.15.2] QtCreator不支持中文输入解决方案

    操作系统:优麒麟22.04.2 LTS QT版本:QT5.15.2 这个大家在网上找找,可以很轻松的安装成功。 先安装QtCreator, 安装这块大家可自行网上找找。 成功后,打开QtCreator,新建工程; 打开main.cpp或者其他文件,发现无法输入中文。 网上有很多解决方案,就是将 /usr/lib/x86_64-linux-gnu/qt5/

    2024年02月11日
    浏览(35)
  • QT5.15.2 在线安装下载速度慢的解决办法

    QT对5.15以及以上版本已经停止提供离线安装包,在线安装网速慢如蜗牛,而且一旦断了又得从头下载,不支持断点续传 由于Qt5.15及以上版本不提供离线安装包,则需要使用在线安装进行安装。首先下载在线安装器: 下载加速需要使用清华源 QT 地址 我宿舍网速是100兆,所以最

    2024年02月13日
    浏览(36)
  • QT5.15.2搭建Android编译环境及使用模拟器调试(全)

    地址:下载 我电脑的windows的,所以选windows 由于官方安装过程非常非常慢,一定要跟着步骤来安装,不然慢到怀疑人生 1)打开\\\"命令提示符\\\"(开始 - Windows 系统 - 命令提示符) 或者 “win+R” -输入cmd 找到刚才的exe 命令行输入以下命令(exe位置根据自己实际的),然后回车

    2024年02月04日
    浏览(49)
  • jetson-nano编译qt5.15.2带opengl,xcb

    项目需求原因,需要编译高版本qt到jetson-nano板子,历经10天来回折腾,终于是成功了。期间历经交叉编译失败,然后转直接编译,然后尝试各种版本的坑,最后整理的方法异常简单,只需6小时左右即可流畅在板子上编译成功。文章最后有我编译好的qt-5.15.2版本链接。 友情提

    2023年04月09日
    浏览(40)
  • Linux Qt5.15.2 编译QWebEngine源码支持音视频H264

    默认自带的QWebEngine 因版权问题不支持音视频功能,需要自己编译源码以支持。 平台:Linux(UOS V20 1050) Qt:5.15.2 下载 Qt 5.15.2 对应版本源码,使用镜像网站或者Qt Maintenance Tool工具下载。 配置 Qt 环境变量 将以下内容追加到bashrc文件后 刷新使其生效 这个阶段可以预先安装所

    2024年02月05日
    浏览(52)
  • QtCreator12无法识别Qt5.15.2的安卓SDK与NDK配置解决

    解决方法: 设置JDK为JDK11 使用Android Studio下载 Android SDK Command-line Tools 10.0   打开Android SDK Location :   双击打开cmdline-tools 复制10.0中所有东西到latest中   点击Manage Kits并选择Devices   然后点击Android会弹出下图窗口,并自动更 安装完成   成功识别  

    2024年01月18日
    浏览(38)
  • 音视频源码调试前准备vs2019+qt5.15.2搭建可调试环境

    安装vs2019+qt,并且在windows环境上安装ffmpeg,尝试使用qt+cdb进行调试,尝试使用vs2019加载qt的程序。 安装VS2019+5.12.2qt环境,并进行测试。 1:安装Visual Studio 2019, a.从官网下载,或者vs2019社区版本下载地址 https://www.jb51.net/softs/700418.htm ====》 安装时必须勾选 Desktop development with C++

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包