Day1开发部分可以分为两个部分,一个是实现了背景图;另一个是对自定义的view和scene做了封装。 Qt 5.14.2 以下步骤会有所省略。总之QT操作比一般的IDE感觉还简单一些。 下面开始整理目录结构。 至此项目结构完毕。 mainwidget.cpp的代码如下: 注意包含QGraphicsPixmapItem!! 看看源码就挺好懂的。运行效果: 至此实现部分没了。下面是对gameView和gameScene的封装~。我也没听多太仔细。方法是很简单的。写两个子类代表我们自定义的view和scene。 点source啥的。add new。选择c++c++ class。
开课吧-智能物联网训练营Day1-使用QT简单的构建图形程序与总结
我没看回放,嗯。主要是因为懒。如有错误,敬请指正。1. 环境介绍
windows 10 当然是最新的。2. 实现背景图
2.1 建立目录结构
建立一个Qt Widgets Application
避雷:不要把项目放到中文目录下。否则会无法编译。
这里需要更改一下。类名改为MainWidget。基类选择QWidget。
注意:底下的框选取消掉
其实不取消也没啥。。我当时就没注意~
选择运行平台。随便选,毕竟没几个人还在用32位系统吧?建议只选一个。我比较喜欢先进的东西,所以64。
至此,一个项目建好了。运行效果如下
打开项目文件夹(你之前保存的地方)
建立src文件夹,把C++源文件和头文件拖到src里。
不要把pro和user文件拖进去了。
再把老师发的code下的代码文件全部复制到src下。把images和audio复制到项目目录(pvz)下。
最终的结果如下:
打开QT,会弹框,closeAll即可。
右键上图箭头指向处,添加现有文件,把src下的所有文件使用ctrl+a选中。加入到项目中。。
打开你的pvz.pro项目文件:
可以看到有些过时的信息。即不是src下的文件。删了。结果如下:
下一步添加资源文件。
在上一步添加现有文件的选项(右键项目弹出)中,还有一个是Add new。
选中Qt。Qt Resource File。Choose
文件名填pvz。
右键上图的文件。Add existing directory。把audio和images勾上。然后弹框,选Yes to all。
2.2 加入一点点代码加入背景图
#include "mainwidget.h" //注意包含以下三个个头文件。老师把后二个放在了mainwidget中了。无所谓。哪里需要哪里搬,反正不会重复包含的。 #include "ImageManager.h" #include <QGraphicsView> #include <QGraphicsPixmapItem> MainWidget::MainWidget(QWidget *parent) : QWidget(parent) { //建立gameView。注意传入this指针。 QGraphicsView *gameView = new QGraphicsView(this); QGraphicsScene *gameScene = new QGraphicsScene(); gameView->setScene(gameScene); QGraphicsPixmapItem *backgroundItem = new QGraphicsPixmapItem(gImageCache->load("interface/background1.jpg")); gameScene->addItem(backgroundItem); } MainWidget::~MainWidget() { //可以把上面的析构了。不过老师没提。小细节。。 }
为什么要这么加?这代码啥意思?
View是窗口,Scene是游戏界面?item是界面中的元素。
窗口一般是恒定的,界面和元素通常都会变化。嗯。总之我还没来得及找博客学习。所以具体是不是这个逻辑还有待查明~。
然后ImageManager还需要在main.cpp初始化。#include "mainwidget.h" #include <QApplication> #include "ImageManager.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); //初始化代码。 InitImageManager(); MainWidgt w; w.show(); return a.exec(); }
嗯。为了增加宽高。可以在11行,gameView初始化后加gameView->setGeometry(0, 0, 800, 600);
3 封装
第一个GameView类。注意大小写。包括进去Qwdiget和添加Q_OBJECT。基类设置为QGraphicsView。
同样的操作添加一个GameScene类。基类改为QGraphicsScene。其他设置和上面一致。
注意导入头文件。QT不够智能。不会自动导入。不过可以右键出错的地方,refactor。如果有include的选项,就选吧。挺方便的。
点开GameView的头文件。给构造函数添加一个QWiget *parent=nullptr的参数。
源文件当然也得更改。注意源文件别把默认值复制过去了。然后使用初始化列表初始化父类。就酱。然后
然后加入到MainWidget中。剩下的步骤我比较自由发挥了。。
然后在cpp文件中实现。
这样。在GameVIew的构造函数中就可以设置窗口的大小:
最终效果不变~
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算