【2】Qt的MainWindow的能看不能吃的框架 以及 添加图片资源

这篇博客介绍了如何在Qt环境中将图片资源编译到应用程序中,以确保程序运行时即使图片源文件丢失也能正常显示。作者详细讲解了创建菜单栏、工具栏和状态栏的过程,并展示了如何加载和使用资源图片,包括设置菜单项图标以及在界面上显示图片。同时,还提供了添加和显示图片的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

就是加上菜单栏 窗口 这些东西。而且没做回调函数

没有做button 所以h文件没有改动

mainwindow.cpp

#include "mainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QToolBar>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->resize(600,400);//窗口大小

    //取用菜单栏
    QMenuBar *mymenu = this->menuBar();//选中menubar按F1能查询他的返回类型  头文件同名
    //单纯取用 没有默认菜单项 所以单单一句很难看出来已经添加了菜单栏
    QMenu *mymenu_file =  mymenu->addMenu("文件");
    QMenu *mymenu_tea = mymenu->addMenu("饮茶");
    //添加菜单项 并且为了对菜单项做后续操作,把返回值赋值给新指针
    QAction *myaction_open = mymenu_file->addAction("打开");
    QAction *myaction_mtjj = mymenu_tea->addAction("看罗小黑战记");
    QAction *myaction_ocarina = mymenu_tea->addAction("看小绿和小蓝");
    //制作点开菜单项下的list


    //取用工具栏
    QToolBar *mytool = this->addToolBar("");//就算给工具栏命名 名字也不会显示在窗口
    mytool->addAction(myaction_mtjj);
    mytool->addAction(myaction_open);
    mytool->addAction(myaction_ocarina);


    //取用状态栏
    QStatusBar *mystatus = this->statusBar();
    mystatus->addWidget(new QLabel("状态"));//添加控件 传参是(QWidget *widget, int stretch = 0)

    //创建铆接控件 //就是可以靠边的悬浮窗,而且不用this创建
    QDockWidget *myxfwidget = new QDockWidget("悬浮窗");//单纯创建不会显示在窗口内
    //如果写("悬浮窗",this);这里的this只是为了让这个独立窗口出现在主窗口内部
    this->addDockWidget(Qt::LeftDockWidgetArea,myxfwidget);//这句话给定了默认的出现位置,所以悬浮窗能出现


    //创建文本编辑器 //主要功能的窗口
    QTextEdit *myedit = new QTextEdit();
    this->setCentralWidget(myedit);




}

MainWindow::~MainWindow()
{

}

要在界面里添加图片

存图片
在Qt里能把图片编译到exe文件里保存,这样就不怕图片的源数据被删了之后程序找不到图片的情况。
先在Qt建立一个保存图片的地方
1.先在项目路径文件夹里建一个用来放图片的文件夹【注意 不能有中文路径
2.回到qt执行下列操作
在这里插入图片描述
在这里插入图片描述
选中那个文件夹 然后起个名字叫image在这里插入图片描述
在这里插入图片描述
添加好前缀之后不用修改什么,再只管添加文件
别名的时候要把文件类型后缀也写进去
在这里插入图片描述
右击某个资源就能选择复制他的路径,之后程序要用到路径

离开了资源文件去到cpp文件的时候想再进入资源文件
双击进不去资源文件
要右击选择进入编辑器才能进去
在这里插入图片描述

下面的代码添加到上面那个代码的末尾

    QPixmap ll;
    ll.load(":/new/prefix1/ll.jpg");//相当于给指针赋地址? 总之这一步没法给界面显示图片
    //路径是从资源文件里复制的,右击进入资源文件,右击选择复制路径

    //myaction_open->setIcon(QIcon(ll));//会把原先设定的‘打开’文字覆盖成图片
    myaction_open->setIcon(ll);//去掉了那个QIcon()也可以嘛 QIcon()好像是为了把图片做成图标

另外,下面是显示图片的代码

QImage pool;
pool.load(":/new/prefix1/0.bmp");

pool.scaled(300,300);//本来想把图片缩放,但没卵用 可删

QLabel *lb = new QLabel(this);
lb->setPixmap(QPixmap::fromImage(pool));
lb->resize(400,400);
lb->adjustSize();//这个是调节窗口的

lb->show();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值