就是加上菜单栏 窗口 这些东西。而且没做回调函数
没有做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();