
Qt5
文章平均质量分 86
一只大鸽子
Python, Django,Pygame,PyQt.
展开
-
(23):自定义事件
Qt 自定义事件很简单,同其它类库的使用很相似,都是要继承一个类进行扩展。在 Qt 中,你需要继承的类是QEvent。继承QEvent类,最重要的是提供一个QEvent::Type类型的参数,作为自定义事件的类型值。回忆一下,这个 type 是我们在处理事件时用于识别事件类型的代号。比如在event()函数中,我们使用QEvent::type()获得这个事件类型,然后与我们定义的实际类型对比。...原创 2019-11-27 10:12:03 · 428 阅读 · 0 评论 -
(22):事件总结
Qt 的事件是整个 Qt 框架的核心机制之一,也比较复杂。说它复杂,更多是因为它涉及到的函数众多,而处理方法也很多,有时候让人难以选择。现在我们简单总结一下 Qt 中的事件机制。Qt 中有很多种事件:鼠标事件、键盘事件、大小改变的事件、位置移动的事件等等。如何处理这些事件,实际有两种选择:1、’所有事件对应一个事件处理函数,在这个事件处理函数中用一个很大的分支语句进行选择,其代表作就...原创 2019-11-24 09:39:15 · 173 阅读 · 0 评论 -
(21):事件过滤器
有时候,对象需要查看、甚至要拦截发送到另外对象的事件。例如,对话框可能想要拦截按键事件,不让别的组件接收到;或者要修改回车键的默认处理。通过前面的章节,我们已经知道,Qt 创建了QEvent事件对象之后,会调用QObject的event()函数处理事件的分发。显然,我们可以在event()函数中实现拦截的操作。由于event()函数是 protected 的,因此,需要继承已有类。如果组件很多...原创 2019-11-24 09:34:17 · 282 阅读 · 0 评论 -
(20):event()
前面的章节中我们曾经提到event()函数。事件对象创建完毕后,Qt 将这个事件对象传递给QObject的event()函数。event()函数并不直接处理事件,而是将这些事件对象按照它们不同的类型,分发给不同的事件处理器(event handler)。如上所述,event()函数主要用于事件的分发。所以,如果你希望在事件分发之前做一些操作,就可以重写这个event()函数了。例如,...原创 2019-11-24 09:22:43 · 367 阅读 · 0 评论 -
(19):事件的接受与忽略
上一章我们介绍了有关事件的相关内容。我们曾经提到,事件可以依情况接受和忽略。现在,我们就来了解下有关事件的更多的知识。首先来看一段代码://!!! Qt5// ---------- custombutton.h ---------- //class CustomButton : public QPushButton{ Q_OBJECTpublic: Cust...原创 2019-11-16 09:38:15 · 310 阅读 · 0 评论 -
(18):事件
事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事件等;另一些事件则是由系统自动发出,如计时器事件。事件也就是我们通常说的“事件驱动(event drive)”程序设计的基础概念。事件的出现,使得程序代码不会按照原始的线性顺序执行。我们的程序的执行顺序不再是线...原创 2019-11-15 10:36:38 · 207 阅读 · 0 评论 -
(17):文件对话框
QFileDialog,也就是文件对话框。在本节中,我们将尝试编写一个简单的文本文件编辑器,我们将使用QFileDialog来打开一个文本文件,并将修改过的文件保存到硬盘。这或许是我们在本系列中所提供的第一个带有实际功能的实例。首先,我们需要创建一个带有文本编辑功能的窗口openAction = new QAction(QIcon(":/images/file-open"), tr...原创 2019-11-14 16:33:20 · 241 阅读 · 0 评论 -
(16):深入 Qt5 信号槽新语法
Qt 5 引入了信号槽的新语法:使用函数指针能够获得编译期的类型检查。使用我们在自定义信号槽中设计的Newspaper类,我们来看看其基本语法://!!! Qt5#include <QObject>////////// newspaper.hclass Newspaper : public QObject{ Q_OBJECTpublic: Newspa...原创 2019-11-06 10:25:25 · 403 阅读 · 0 评论 -
(15)标准对话框QmessageBox
所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。Qt 的内置对话框大致分为以下几类:QColorDialog:选择颜色; QFileDialog:选择文件或者目录; QFontDialog:选择字体; QInputDial...原创 2019-11-01 21:04:01 · 447 阅读 · 0 评论 -
(14)对话框数据传递
模态对话框使用了exec()函数将其显示出来。exec()函数的真正含义是开启一个新的事件循环(我们会在后面的章节中详细介绍有关事件的概念)。所谓事件循环,可以理解成一个无限循环。Qt 在开启了事件循环之后,系统发出的各种事件才能够被程序监听到。这个事件循环相当于一种轮询的作用。既然是无限循环,当然在开启了事件循环的地方,代码就会被阻塞,后面的语句也就不会被执行到。因此,对于使用了exec()显示...原创 2019-10-31 08:55:24 · 248 阅读 · 0 评论 -
(13)对话框
Qt 中使用QDialog类实现对话框。就像主窗口一样,我们通常会设计一个类继承QDialog。MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ setWindowTitle(tr("Main Window")); openAction = new QAction(QIcon(":/ima...原创 2019-10-28 22:17:48 · 150 阅读 · 0 评论 -
(12)菜单栏、工具栏和状态栏
openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this);openAction->setShortcuts(QKeySequence::Open);openAction->setStatusTip(tr("Open an existing file"));connec...原创 2019-10-28 21:39:56 · 604 阅读 · 0 评论 -
QT布局管理器
QT提供布局管理器来(自动)调整组件大小和位置。例如当你拉伸窗口时,组件大小也一起拉伸、调整位置。#include "mainwindow.h"#include <QApplication>#include<QSpinBox>#include<QSlider>#include<QBoxLayout>int mai...原创 2019-10-17 09:01:38 · 214 阅读 · 0 评论 -
Qt学习之路
QT 信号槽https://blog.youkuaiyun.com/qq_41068877/article/details/82499471主窗口https://blog.youkuaiyun.com/qq_41068877/article/details/82531010添加资源文件https://blog.youkuaiyun.com/qq_41068877/article/details/82559543对...原创 2019-10-17 08:51:15 · 178 阅读 · 0 评论 -
程序打包
【转载】原文地址:https://blog.youkuaiyun.com/windsnow1/article/details/78004265最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。 首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑windows系统是win10专业版的。下面的打包教程...转载 2018-08-06 20:03:13 · 245 阅读 · 0 评论 -
第1个Qt项目:计算器
expr.c学习了Qt基本操作(布局,信号槽等),尝试做一个小的项目:计算器。参考视频::https://study.163.com/course/courseLearn.htm?courseId=1005069007#/learn/video?lessonId=1051536137&courseId=1005069007。计算器的样子模仿Windows自带的计算...原创 2018-09-11 17:24:10 · 30492 阅读 · 32 评论 -
Qt MainWindow 程序主窗口
QMainWindow 是Qt预定义的一个 主窗口类。 下面创建一个主窗口先新建一个工程。选择桌面应用程序,然后默认,完成创建工程。#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); ...原创 2018-09-08 17:29:30 · 11960 阅读 · 0 评论 -
Qt 添加资源文件
如果程序需要加载特定的资源(如图片),就要添加资源文件 给工程添加资源文件:右击工程(项目),添加新文件,左面一栏选Qt, 然后右面一栏选Qt Resource File选择,设置名称和路径,完成。工程里会出现一个 名称.qrc文件 //这个名称就是刚刚设置的名称。双击这个文件,右侧的编辑区有个“添加”,我们首先需要添加前缀,比如我们将前缀取名为 images。然后选...原创 2018-09-09 16:35:26 · 645 阅读 · 0 评论 -
Qt Creator 文件中有中文,编译出错
代码中有中文,编译时报错 https://www.cnblogs.com/flipped/p/6645693.html根据上面的文章所说,是VS编译的问题,按照文字所说,在开头添加#if _MSC_VER >= 1600#pragma execution_character_set("utf-8")#endif结果还是乱码。然后看到最后一句ps之前的...原创 2018-09-12 15:45:21 · 1618 阅读 · 1 评论 -
用户图形界面(GUI)入门
编程入门之后,做出的东西都是控制台程序,虽然可以用,但是不是那么友好。而且,控制台程序和我们印象中的程序,比如Word,Excel,QQ,这些程序感觉不一样。为了做出更实用的东西,有必要学习用户图形界面(GUI)。可做用户图形界面的东西很多,最后我决定选择Qt5.在网上找了很久教程,看到一个很好的图文教程:https://www.devbean.net/2012/08/qt-stu...原创 2018-09-07 11:06:36 · 18090 阅读 · 3 评论 -
Qt 信号槽(笔记)
//完整教程地址:https://www.devbean.net/2012/08/qt-study-road-2-catelog/ 了解信号槽所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函...原创 2018-09-07 17:26:06 · 458 阅读 · 0 评论 -
第2个Qt项目:学生信息管理系统
参考视频:https://study.163.com/course/courseLearn.htm?courseId=1005069007#/learn/video?lessonId=1051539128&courseId=1005069007效果图://添加、查询、排序、删除 做这个项目的过程:使用QtCreator做界面,然后绑定信号槽。用到了主窗口...原创 2018-10-14 09:32:04 · 5731 阅读 · 16 评论 -
第3个Qt项目:秒表
参考教程地址:https://study.163.com/course/courseLearn.htm?courseId=1005069007&from=study#/learn/video?lessonId=1051540146&courseId=1005069007使用Qt制作,主要用到QTime和QTimer(时间和定时器)效果图: ...原创 2018-10-25 21:43:26 · 890 阅读 · 0 评论 -
“Could not determine which ”make“ command to run. Check the ”make“ step in the build configuration.”
“Could not determine which ”make“ command to run. Check the ”make“ step in the build configuration.”在Qt Creator运行Qt项目时出现了这个错误。在https://stackoverflow.com/questions/44838817/could-not-determine-whic...原创 2018-10-24 11:02:30 · 29332 阅读 · 6 评论 -
打地鼠游戏(使用Qt)
Qt项目 打地鼠游戏。参考视频:https://study.163.com/course/courseLearn.htm?courseId=1005069007#/learn/video?lessonId=1051536141&courseId=1005069007学习做一个简单的小游戏。记录一下学习的过程。 2018-10-29 20:531.创建工程。2.设计界面...原创 2018-10-29 21:08:11 · 5632 阅读 · 1 评论 -
(10)Qt对象模型
Qt “扩展”了标准 C++。所谓“扩展”,实际是在使用标准 C++ 编译器编译 Qt 源程序之前,Qt 先使用一个叫做 moc(Meta Object Compiler,元对象编译器)的工具,先对 Qt 源代码进行一次预处理。Qt 使用 moc,为标准 C++ 增加了一些特性:信号槽机制,用于解决对象之间的通讯,这个我们已经了解过了,可以认为是 Qt 最明显的特性之一; 可查询,并且...原创 2019-05-01 08:33:15 · 294 阅读 · 0 评论 -
使用Qt Creator 出现的一些错误
学了C++一段时间后,感觉控制台程序看起来和用起来都不是太好。于是看了一下可以做图形界面的工具,最后选择了Qt5。在Qt的官网上下载下载地址了安装包后,发现安装选项有很多,然后就百度了一下,找到了一篇教程Qt5安装教程。按照教程按照好了Qt5。然后开始了使用Qt5的第一个桌面应用程序。找到一个教程就开始做。按照教程一步步做了下去,最后运行的时候却出错了。报错内容是这样...原创 2018-07-18 21:52:51 · 3021 阅读 · 0 评论