Qt学习
explore翔
安徽某985小硕,记录日常学习生活,欢迎大家交流指教。
展开
-
游戏主体设计
1.金币类的封装。我们点击金币部分移动金币,里面很多操作是独特的,不是mypushbutton的行为 。所以要再添加一个金币类。金币的构造参数要重写,加上一个金币爱好还是银币类型传入,因为二者的操作判断都不一样。//显示金币背景图案 for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { QLabe原创 2021-08-17 00:23:04 · 234 阅读 · 0 评论 -
翻金币游戏-大体介绍和资源文件,主场景,选择关卡场景设置
现在要开始实战做一个翻金币游戏,是这样的环境一共二十关,金币一面金色,一面银色。翻一个会使周围四个一起翻转,目标是所有金币都是金色。首先需要添加这些图片资源,方法不多说,主要是资源包括八张金币不同位置的图片,翻转效果是动态实现的,利用帧数不用位置金币实现。back按钮按下会不同,所以资源文件有两个back按钮。3.主场景配置我们创建一个主场景的类。设置宽高,标题等,并且对开始菜单项中的退出按钮进行处理。最后重写绘图事件实现背景图片的插入。...原创 2021-08-12 22:51:50 · 2059 阅读 · 3 评论 -
绘图设备,Qfile文件读写
之前我们是通过画家类通过画家引擎画到widget上(widget也是绘图设备的子类,是的,他是多继承,也是QObject的子类)。当然绘图设备主要有四个QPixmap,QBitmap,QImage,QPicture.QPixmap最主要的就是可以把画的东西存到电脑的硬盘中,不是画在Widget上。Qbitmap就是只有黑白图像,相当于图片二值化,不怎么常用。 QPixmap pix(300,300); QPainter painter(&pix); painter.setPen原创 2021-08-10 11:31:23 · 311 阅读 · 0 评论 -
绘图事件的处理
接下来我们要学习如何用qt来绘图,这是实现可视化界面的基础知识。我们要学习怎么用画家这个库文件来画一些基础的图形。我们需要重写这个paintEvent(QPaintEvent *)方法。只要你重写了,系统会自动调用的。void Widget::paintEvent(QPaintEvent *){ QPainter painter(this);//this代表画在widget上 //设置画笔 QPen pen(QColor(255,0,0)); pen.setWid原创 2021-08-08 23:36:08 · 101 阅读 · 0 评论 -
Qt的鼠标事件和定时器
鼠标有点击,移动,离开等操作。很多操作都要用到鼠标事件。原创 2021-08-07 22:31:08 · 332 阅读 · 0 评论 -
自定义控件封装
设计中可能需要用到很多东西系统没有提供,所以需要自定义封装。假设我们需要实现一个需求,输入一个数字,滑动条自动滑到指定位置,滑到某个位置数字自动变化。我们需要添加一个Qt设计师界面类文件,这样就可以使用ui界面来封装。需要在窗口添加一个widget控件并提升为你的封装类名。现在只是分组合好了,但是功能未实现。我们要用到信号和槽函数来实现。 //QSpinBox改变,QSlider也跟着改变 void (QSpinBox:: * spsginal) (int)=&QSpinBox原创 2021-08-05 16:54:24 · 173 阅读 · 0 评论 -
常用控件介绍
1.按钮组pushbotton很简单,可以用icon属性修改图标(资源文件要自己导入),不过这个按钮一般是显示文字用的。tool button.这是用来显示图片的。比如qq里面联系人的头像就是这个tool button。radio button.单选按钮,比如选性别check box 多选按钮2、QListWidget控件是一个可以输入文字的列表容器的控件。比如我们可以写一首诗。代码如下:有两种输入方式,最简单的直接在ui里写,或者用代码写。 ui->setupUi(this);原创 2021-08-04 17:02:24 · 1347 阅读 · 0 评论 -
对话框的创建和页面布局
前置知识点:lambda表达式lambda表达式用于创建并定义匿名的函数对象,简化编程的工作。Lambda 的语法形式如下:[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}函数对象参数可以是空,=,&,this等。=代表表达式范围内按值传递的所有局部变量。具体的大家自己再看一下,这部分重点是对话框创建。模态对话框:此对话框打开不能对其他窗口进行操作,相当于阻塞的。非模态对话框正好相反。假设要实现一个需求,按一个按原创 2021-08-03 15:50:59 · 393 阅读 · 0 评论 -
添加菜单栏和工具栏,状态栏,铆接核心部件
之前说的都是基于widget类的,现在要学QMainWindow类的项目,创建时选这个类。一开始和widget没有区别,因为你没有添加任何东西。添加菜单栏就是QMenubar,注意要把这个放到窗口中去。然后可以添加菜单和菜单项。注意菜单栏只有一个。工具栏可以有多个,可以放在上下左右。创建过程和菜单栏稍有不同。还可以添加小的控件比如按钮。截图如下3.状态栏,铆接部件,核心部件添加状态栏只有一个。铆接部件可以多个。QStatusBar, Dockwidget,setcentralarea.我们发现原创 2021-07-30 16:00:58 · 259 阅读 · 0 评论 -
信号和槽-点击按钮关闭窗口,自定义信号和槽
如果我们要实现一个需求,点击按钮关闭窗口,怎么实现呢。就要用到信号和槽的概念。原本按钮和窗口是没有关联的,但是我们通过一个槽函数连连接他们。比如按钮—点击----窗口-----关闭。所以我们需要一个函数connect,意思就是把信号的发送者和接受者链接起来,就可以完成需求。connect的参数是1、信号发送者(按钮,具体的信号(比如clicked点击)信号接受者(窗口),槽函数(比如关闭)。connect(btn1,&QPushButton::clicked,this,&mywi原创 2021-07-28 23:29:03 · 455 阅读 · 0 评论 -
QT第一个小程序(按钮,快捷键介绍,对象树)
QT优点:跨平台,接口简单,一定程度简化内存回收。比如谷歌地图,linux桌面环境都是QT实现的。第一个小程序。创建项目后,要创建一个默认的类。有三种选择。有QWidget,QMainWindow,QDialog。其中第一个类是父类,其他两个是继承第一个。第一个就是什么都没有的一个窗口,第二个是有菜单栏,状态栏等的窗口,第三个是对话框。创建完成后会有三个文件和一个pro项目,分别是mywidget.h,mywidget.cpp,main.cpp.其中main函数是入口,QApplicati原创 2021-07-27 21:58:38 · 326 阅读 · 3 评论