自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 本博客永久作废

新博客https://github.com/jxf2008/blog广告实在太tm多了。

2019-11-29 15:39:52 459

原创 炉石传说卡牌记录器

        由于去年上班的时候需要做一个小时的车去公司,无聊之余用玩起了炉石传说这个游戏打发这一个小时。入坑一段时间后,获得了各种卡包,刚好那个时候开始接触Sqlite3数据库,于是想着娱乐中学习的目的,在自己的电脑里建了一张表,每天记录获得的卡包的信息,顺便看看自己橙卡的爆率如何.         以前一直在控制台用SQL语句来输入卡包,最近突发奇想,不如把这个功能做成一个GUI界面程序,顺...

2018-04-28 20:16:20 1029

原创 Essential Qt 第二十六章 多线程

      多线程是一个很大的范围,内容也非常的多,我手上就有三本总计超过1500页的书讲述多线程的问题,这一章只能演示下Qt对多线程提供的一些支持。多线程有很强的平台相关性,很多时候需要用到各平台的API,这对于移植提出了挑战,而Qt提供的线程相关的类可以在各个平台上使用,对于很多开发者来说,这可以节约很多时间和精力。      本章只讨论Qt的线程的一些类及用法,这里假设你已经对线程有一定的了...

2018-04-17 17:43:14 453 5

原创 Essential Qt 第二十四章 数据显示(四) 使用委托

        在前一章里处理了一个用户可能出现的错误,即在年龄这一列的输入了一个非数字时,忽略用户的操作。在有人机交互的程序中,最大的麻烦就是用户无意的操作对数据造成的破坏。数据最大的梦魇并不是来自电影里黑客的攻击,用户无意间的操作对数据的破坏才是最常见,这里错误往往经常性的且没有任何规律的出现,并且极难第一时间发现,排查。        在Qt的模型/视图结构中,额外提供了委托的概念,用于处理...

2018-04-14 17:39:05 622

原创 Essential Qt 第二十三章 数据显示(三) 使用自定义模型

  在上一章里演示了一个很基础的数据库显示程序,但这个程序存在这不少问题,比如点击一个表名,右侧就会显示对应的表的全部数据,那如果表的数据比较多的话,这个操作就会比较耗时,而在程序读取数据库内容的时候程序会处于卡死状态,无法响应用户的操作,在这个数据爆炸的时代,一张表有个几千万条数据是件很正常的事情,而程序要把这几千万条数据全部读出来就是一项非常浩大的工程了,很多时候读取这么大的数据是个非常不明智...

2018-04-13 18:14:54 1005

原创 Essential Qt 第二十二章 数据显示(二) 模型/视图

        在前一章里提到咯模型/视图的概念,其实就是将数据和显示分开,这样在处理不同结构类型的数据时有着极大的方便。这一章将主要演示模型/视图结构带来的便利。        如果对于模型/视图没有任何的概念,也没有任何关系,这一章将通过一个例子演示下模型与视图的关系。这个例子将会用到前面有关数据库的内容,这里任然使用sqlite3作为例子。        这是一个很简单的数据库查看软件,通过...

2018-04-12 13:09:58 331

原创 Essential Qt 第二十一章 数据显示(一) 项/视图类

  在二十章里,简单的介绍了用于数据库连接的类,QSqlDatabase和QSqlQuery,通过这两个类可以有效的和数据库连接,然后通过sql语句才对数据库进行各种操作,但这里这里忽略了一个问题,如何向用户显示这些数据库中的数据/如何让用户对这些数据进行添加改删?这些操作可以用过sql语句来实现,但显然我们不能要求每个程序的用户都能熟练的使用sql语句,假设你设计了一个用于医院的病人管理系统,你...

2018-04-07 17:55:26 307

原创 Essential Qt 第二十一章 本地目录

      Qt提供了一套操作本地目录以及文件的类,是的开发者可以在不了解系统api的情况下来操作系统本地的目录以及文件,这对于开发者来说是一件很让人欣慰的事情,对于一名开发这来说学习一个系统的api是一项浩大的工程,无论是windows还是linux或者unix或者其他什么系统,这些系统的api往往数量庞大,需要花费大量的时间去学习研究,而Qt则可以让我们省去很多的时间,我们甚至可以在完全不知道...

2018-03-31 10:55:44 212

原创 Essential Qt 第二十章 数据库

                 对于编程而已,数据库操作是一个非常常见的内容,Qt提供了目前大多主流数据库的支持,这一章将以sqlite3为例,演示下Qt与数据库相关的基本内容,另外这里假设读者已经熟悉sqlite3的操作以及SQL语言。                 以sqlite3为例,如果需要操作数据库的内容,基本的操作可以分成两个部分,第一,连接数据库,第二,操作数据库(如使用SELE...

2017-12-24 13:46:31 385

原创 Essential Qt 第十九章 子类化QGraphicsItem

前面两章通过元素/视图架构完成了一个贪吃蛇游戏,但这个游戏还有些不粗,首先,游戏以吃到10个食物为胜利条件,而在游戏中用户却不知道游戏到底进行到哪一步了,其次,游戏的界面有些单调,比如蛇的身体,如果有些色彩会好看不少,所以对上上一章的游戏做些改进,大致上回事下面这个样子           从图上可以看出,每个食物上多了一个数字,这样可以提示用户游戏的精度,同时蛇的身体有了色彩上的变化

2017-12-23 15:44:25 667

原创 Essential Qt 第十八章 贪吃蛇(下)

前一章制作了贪吃蛇游戏的框架,只是实现了一些基本功能,而这一在会进一步完善程序所需要的各项功能,首先看下程序完成后的样子              相较于前一章,个程序添加了一个难度选择框,一个信息显示框,以及三个按钮用于控制游戏的各项功能,对比前一章的程序,这个程序主要多了以下功能              1 游戏结束后可以新建游戏              2 提供难

2017-12-17 16:02:06 383

原创 Essential Qt 第十七章 贪吃蛇(上)

上一章里简单介绍了元素/场景结构,接下来两张将会用这个架构来制作一个完整的程序------贪吃蛇,详细大家都玩过,至少知道这个游戏,在智能手机出现前,这个游戏几乎是所有手机的标配游戏,而今天将会介绍下如何利用前面介绍的元素/场景架构来实现这个程序,首先看下程序的大概样子           先简单的分析下游戏的结构,最主要的是蛇和食物,这里绿色的蛇使用QGraphicsRectItem

2017-12-16 11:44:32 553

原创 Essential Qt 第十六章 元素/场景

对于一般的窗体/图像的修改,可以使用前一章介绍的绘图以及绘图事件,但这种绘制通常用于比较少的绘制,对于需要大量并且复杂的图像绘制会往往会先的力不从心,下面是一张来自Qt自带的例子的截图          这是Qt一个有关图表制作的例子,类似上面的图像比较复制,对于这样的情况使用绘图来直接绘制会非常的繁琐,有时候甚至会无法完成,对于这样的情况,Qt提供了另一种解决绘图的方案------项

2017-12-10 13:02:02 381

原创 Essential Qt 第十五章 绘图事件

前面简单的演示了Qt的几个事件,其中包括了绘图事件,而这里则比较详细的讲下绘图事件      在现实世界里,如果你需要画一幅图画,你要进行三个步骤,第一,准备画图的工具,画笔,画刷之类的,第二,选择画图的位置,你打算画在纸上,课桌上还是大街的墙上,第三,画你想画的内容,你打算画一些直线曲线来表达你的抽象思维,还是绘制彩色区域,或则直接写上一些你喜欢的文字。通过这三个步骤你就可以在你想要的地方画

2017-12-02 11:43:07 478

原创 Qt5.7 扫雷

扫雷高清无码重置版上一个是初学编程的时候自己摸索着写的,当时挺有成就感的,现在回头看看,代码简直惨不忍睹这次主要整理了代码,提高了可阅读性,另外改进了扫雷自动解开空白区域的算法,最初的那个有点弱智。。。文件地址https://pan.baidu.com/s/1nuLhtK9有人和我反应以前的文件windows下打不开或乱码,是英文我在linu

2017-11-04 10:26:32 575

原创 在家打游戏

最后时刻踩到蘑菇了。。。

2017-10-02 19:40:16 305

原创 Essential Qt 第十四章 事件过滤器

void getInstruction(){ emit thisStruction(tr("infos..."));}            在前面的章节里简单的介绍了Qt的几个事件,这里介绍一个和事件相关的东西:事件过滤器,这个。。。。。暂且称为“东西”的作用就是过滤事件,简单的来说,假如一个对话框(QDialog)上面放了10个QPushButton,当鼠标点击其中一个按钮的时

2017-06-20 21:35:41 453

原创 Essential Qt 第十三章 文件拖放

这一章,将实现ReadMe程序的最后一个功能,即文件的脱放,想ReadMe这样的编辑器,通过把一个文件拖放至窗体内来实现文件的打开是一个很常见的操作模式,Qt对这一操作做了比较细致的区分,最主要的是通过拖事件dropEnterEvent()以及放事件dragEvent(),除此意外,Qt还提供了dragMoveEvent()和dragLeaveEvent()来应对一些特殊情况或者一些细致的控制,当

2017-03-15 17:32:43 474

原创 学生管理系统

首先这个程序使用本地文件存放数据,在第一次运行的时候会在程序目录内生成一个info的目录,里面生成一些文件,这些文件即为程序所用的数据,千万不要 改文件内容或者文件名之类的,如果改了,就会导致程序崩溃(linux下为段错误,win7下为程序未响应,另外如果你装360的话,360可能会在次刻 跳出来直接把你的程序干掉,原因未知。。。)如果发送这种情况,直接删掉info目录即可,程序再

2017-03-09 20:25:44 717 1

原创 贪吃蛇

这里主要是食物的防止和蛇的游走,蛇我用QGraphicsPathItem,然后用QList snake来确定蛇身体坐标场景坐标为400X400,左上角定点坐标为(0,0),右下角点坐标为(400,400)每个格子都占据20X20的QRectF,蛇身的坐标为格子的中心距离场景最左上角的格子坐标(0,0,20,20),如果蛇头位于这个格子则有*(snake.begin())

2017-03-09 20:24:37 658

原创 山寨记事本

其实这个是我在联系拖放事件的时候做的一个小程序,只是可以接受文件拖放,后来我看到QTextEdit对于复制,粘贴等都有对应的函数和槽,于是就把这些东西加上去,然后这玩意就成了。 。。  这里字体的话用的是本地的字体,由于这个是把所有文件内容读到内存里操作,保存时候再由内存读回文件,所以没有做颜色和图片的功能另外这个程序如果拖入一个100MB以上的文件会直接挂掉。

2017-03-09 20:23:20 745

原创 扫雷

做完了才返现其实也没用到多少东西,唯一的可能就是重写了一个鼠标点击事件,其他的基本是教材前几章基础部分的内容用一个继承QPushButton的按钮来做地雷,在一个对话框上放置了15X15个用于来模拟地雷雷周围的8个格子肯定为数字,所以空白格子周围的8个格子肯定不会为地雷胜利条件为打开所有的空格(数字+空白)并且右键标记出所有的地雷(右键标记为?号)

2017-03-09 20:06:12 556

原创 资源总汇

* 不定期更新*欢迎指出错误,我会在更正后并备注上留下您的大名(如果愿意留名的话)~~~~~~完成程序~~~~~~1.扫雷    涉及内容:C++/Qt    详细内容请点我        扫雷重置版2.山寨记事本    涉及内容:C++/Qt    详细内容请点我3.贪吃蛇    设计内容:C++/Qt    详细内容请点我4.学生管理系统    涉及内容:C++/Qt    详细内容请点我~~...

2017-03-09 20:03:42 314

原创 将博客搬至CSDN

将博客搬至CSDN

2017-03-09 20:03:39 224

原创 Essential Qt 第十二章 文本文件的读写

在C/C++语言中,有一大堆关于本地文件读写的函数,比如C语言提供了至少30个以上的IO函数来支持文件的读写,而C++则使用fstream等类来完成,当然关于C++的IO相关部分足可以写出好几部大头书。在Qt中也提供了很多和文件读写相关的IO类,这里只能简单的介绍其中的一小部分。关于文件,window下区分文本文件和二进制文件,而linux下则不做区分,而Qt为了则提供了QTextStream和Q

2017-03-09 20:03:36 388

原创 Essential Qt 第十一章 事件的运用

这一章将通过一个完成一个完成的程序,这个程序将会运用到多个事件。这个程序被命名为TitleWidget.在界面程序中,滚动播放一些文字非常常见,而这个程序的最用将是能滚动播放默认的字符或输入的文本,完成后大概是这个样子其中的文字在从左到右不断的循环滚动播出。要实现这个程序,至少要用到3个事件,都是到目前尚未接触到的事件,先看程序头文件TitleWidget.h#ifndef TITLEWIDGET

2017-03-09 20:03:33 433

原创 Essential Qt 第十章 事件

在记事本程序ReadMe中,为了将查询对话框更好的安装到主程序中,修改了对话框的关闭事件,使得用于关闭对话框的时候,对话框只是隐藏,而不是真正的关闭。这只是对Qt中有关事件的运用的一小部分,Qt的事件(类)都继承自QEvent,查询Qt助手可以在文档发现,这个类提供了超过一百种Qt事件的支持,查询对话框中使用到的关闭时间也包含其中,这一章将通过几个例子详细说明事件的使用等。

2017-03-09 20:03:31 238

原创 Essential Qt 第九章 内存管理

前面连续几章制作了一个记事本(ReadMe)程序,当然并没有完成所有的功能。作为一名C++程序员,不知道你有没有注意到一个问题,在这个程序中有个类ReadMe,在类的构造函数中使用了大量的new来创建对象,然而这些构造函数中的new却找不到对应的delete,事实上这个类根本就没有析构函数。如果你有这样的疑惑,很好。。。。因为这对于C++程序员来说很正常。              Qt提供了一套

2017-03-09 20:03:28 273

原创 Essential Qt 第八章 记事本(五)实现格式菜单功能

              这一章将完成记事本程序里的“格式”菜单里的各项功能,第一个要完成的是“自动换行”,这个功能QTextEdit有个成员函数setLineWrapMode()可以实现这个功能,但问题是这里要求菜单上的”自动换行“是个单选框,QAction的成员函数setCheckable()提供了这个功能,与之对应的是isChecked()这个函数,他返回一个布尔值,用于表示QAction...

2017-03-09 20:03:25 819

原创 Essential Qt 第七章 记事本(四)实现编辑菜单功能

前面完成了记事本程序的界面制作,这一章将来实现这个程序的编辑菜单上的各项功能。我们使用QTextEdit来作为记事本程序的中心窗体,这里有一个很大的便利就是QTextEdit提供了很多和编辑有关的函数,槽等,在需要的时候只需要直接调用即可,其中,撤销,恢复,复制,粘帖,剪切,全选在QTextEdit均有对应的槽来实现其功能,我们要做的就是把编辑菜单上的动作(QAction)和这些槽连接起来即可,在

2017-03-09 20:03:22 419

原创 Essential Qt 第六章 记事本(三)添加图片,工具栏,状态栏与快捷键。

在有图像界面的程序中,添加一些图片是很常见的事,这些图片可以作为log,背景等,而在这里演示的是将一些图片添加到菜单中,并作为工具栏的内容。         Qt中使用一种qrc格式的文件来作为添加资源的文件,注意这里是添加的资源不限于图片,其他音频视频也可以这样添加。具体步骤:          1.在程序目录下新建一个images的子文件目录,然后将需要的图片放入这个子目录呢

2017-03-09 20:03:19 547

原创 Essential Qt 第五章 记事本(二)简单事件处理

这一章里出要会把前两章制作的2个窗体合并为一个程序,这里需要我们手动修改一个关闭事件,在Qt编程中,事件是一个很重要的部分,后面将会一单独的章节来详细讲述,但应为这个程序就会用到,所以在这一章简单的介绍下。           事件(event)是由窗口系统或者Qt自身产生,用以响应所发生的各类事情。就如第一章里的使用到的窗部件QPushButton,当鼠标(左键或右键)点击就会触发这个窗体的mo

2017-03-09 20:03:16 308

原创 Essential Qt 第四章 记事本(一)

接下来的几章将介绍如何制作在上一章提到的window记事本程序,这个程序本身并不复杂,但因为为需要穿插介绍一些其他内容,所以这个过程会显得比较长。在这一章里将先演示窗体的制作。           我们先把程序的界面做好,完成后的程序应该是这个样子的            这个窗体使用了QMainWindow,这个窗体最大的作用特点就是提供了菜单栏,工具栏,状态栏等常见的窗体元素,你也可以依据需要

2017-03-09 20:03:14 371

原创 Essential Qt 第三章 搜寻对话框

对于大多数window7/10等win用户来说,windows自带的记事本程序再熟悉不过了,他提供了最基本的文本编辑功能,接下来几章我们将制作一个类似的程序,整个程序相对(之前几章的例子)比较大,所以我们先从他的一个对话框开始。         这是一个查询对话框,和windows记事本的对话框很相似,这个对话框中除了前面章节已经介绍过的QLabel和QPushButton外,还使用了    QL

2017-03-09 20:03:11 363

原创 Essential Qt 第三章 信号与槽

还记得第一章的Hello Qt程序吗,不知道你有没有用QPushButton来代替QLabel来重新实现这个程序,因为这一章需要用到这个        在正式讨论信号与槽之前,我们先简单的讨论一个问题,在界面中,有很多结束/关闭的选项,点击一下程序就结束了,在Qt中,也有类似的情况,比如我点击一个按钮,整个程序就结束了,放在代码的角度来说,有一个类,当我执行他的一个成员函数(点击了这个按钮),另一

2017-03-09 20:03:08 333

原创 Essential Qt 第二章 界面布局

Qt的界面布局相对比较简单,虽然从代码角度来说可能有些长,但其实要理解他并不困难。      Qt的界面主要依赖2个布局管理器,分别是QHBoxLayout和QVBoxLayout这两个类,用于水平方向和垂直方向上的界面布局,通过这两个界面布局管理器和弹簧,我们可以应付绝大多数的场景,当然Qt还有很多用于界面布局的类,这些类主要用于一些特殊或者精确布局上,我会在以后用到的时候再分析      第一

2017-03-09 20:03:05 305

原创 Essential Qt 第一章 Hello Qt

很多编程都是从HelloWorld开始第一个程序的,我们就从Hello Qt开始#include#includeint main(int argc , char** argv){ QApplication app(argc,argv); QLabel* label = new QLabel("Hello Qt"); label->show(); return app.exe

2017-03-09 20:03:03 519

原创 C++类成员变量是为什么选择private?

首先说明下,在c++标准中,类成员变量可以有3个关键词,public,protected,private,分别对应公有成员,保护成员,私有成员       换句话说,c++标准是完全允许使用公有成员的,所以我讨论的是我个人不用protected或public成员的原因,并不代表你(或其他人)不可以用      事实上,我绝对不会反对你将类成员设为公有,因为那和我没关系。。回到正题~~~~~~~~~

2017-03-09 20:03:00 3810 6

原创 C Primer Plus 第十六章 编程练习 1-7题

第2题#include<stdio.h>#define TK(X,Y) 1/((1/X+1/Y)/2)int main(void){ int i = 10; int j = 5; printf("结果为%.2lf.",TK((double)i,(double)j)); return 0;}第3题#include<stdio.h>#include&l...

2017-03-09 20:02:57 458

原创 C Primer Plus 第十四章 编程练习 1-11题

第3题#include<stdio.h>#define Len 40#define Counts 100struct Book{ char title[Len]; char atuhor[Len]; float value;};int main(void){ int numbers = 0; struct Book books[Counts]; d...

2017-03-09 20:02:54 757

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除