![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt笔记
TheonlyRain
日常中二,偶尔文艺
展开
-
【学习笔记】C++ GUI Qt4 第六章 6.4 滚动区域 和 6.5 停靠窗口和工具栏
文章目录6.4 滚动区域6.5 停靠窗口和工具栏6.4 滚动区域QScrollArea类提供了一个可以滚动的视口和两个滚动条。如果想给一个窗口部件添加一个滚动条,则可以使用一一个QScrollArea类来实现,这可能要比我们自己通过初始化QScrollBar,然后再实现它的滚动等功能简单得多。QScrollArea的使用方法,就是以我们想要添加滚动条的窗口部件为参数调用setWidget()。如果这个窗口部件的父对象不是视口,QSrollArea会自动把这个窗口部件的父对象重定义为该视口(可以通过QS原创 2020-09-24 19:31:06 · 554 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第六章 6.2 分组布局 和 6.3 切分窗口
文章目录6.2 分组布局6.3 切分窗口6.2 分组布局QStackedLayout类可以对一组子窗口部件进行摆放,或者对它们进行“分页”,而且一次只显示其中一个,而把其他的子窗口部件或者分页都隐藏起来。QStackedLayout本身并不可见,并且对于用户改变分页也没有提供其他特有的方法。图6.5中的小箭头和暗灰色框架是由Qt设计师提供的,利用它们可以使布局设计变得更容易些。为方便起见,Qt还提供了QStackedWidget类,这个类提供了一个带内置QStackedLayout的QWidget。分原创 2020-09-24 19:27:18 · 439 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第六章 6.1 在窗体中摆放窗口部件
文章目录6.1 在窗体中摆放窗口部件6.1.1 绝对位置法6.1.2 人工布局法6.1.3 布局管理器法放置在窗体中的每一个窗口部件都必须给定一个合适的大小和位置。Qt 提供了多个用于在窗体中摆放窗口部件的类:QHBoxLayout、QVBoxI ayout、QGridLayout和QStackLayout。这些类简单易用,几乎每个Qt开发人员都会用到它们——或者直接在源代码中,或者通过Qt设计师。使用Qt布局类的另外一个原因是:它们可以确保窗体能够自动适应于不同的字体、语言和系统平台。如果用户改变了系统原创 2020-09-24 19:19:54 · 369 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第五章 5.4 双缓冲
文章目录5.4 双缓冲5.4 双缓冲双缓冲(double bffering) 是一种图形用户界面编程技术,它包括把一个窗口部件渲染到一个脱屏像素映射(off screen pixmap)中以及把这个像素映射复制到显示器上。在Qt的早期版本中,这种技术通常用于消除屏幕的闪烁以及为用户提供一个漂亮的用户界面。在Qt 4中,QWidget会自动处理这些情况,所以我们很少需要考虑窗口部件的闪烁问题。尽管如此,但如果窗口部件的绘制非常复杂并且需要连续不断地重复绘制时,明确指定使用双缓冲则是非常有用的事情。于是就原创 2020-07-24 21:27:44 · 611 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第五章 5.3 在Qt设计师中集成自定义窗口部件
文章目录5.3 在Qt设计师中集成自定义窗口部件5.3.1 改进法5.3.2 插件法5.3.3 插件法实操5.3.4 测试自定义控件5.3 在Qt设计师中集成自定义窗口部件在Qt设计师中使用自定义窗口部件之前,我们必须让Qt设计师先察觉到它们的存在。有两种方法可以完成这一任务:改进法(promotion)和插件法(pluigin)。改进法是最为快捷和简单的方法。这种方法包括:选择一个内置的Qt窗口部件,但该窗口部件要和我们自定义的窗口部件具有相类似的应用程序编程接口,并在Qt设计师的自定义窗口部件对话框原创 2020-07-24 21:25:00 · 576 阅读 · 1 评论 -
【学习笔记】C++ GUI Qt4 第五章 5.1 自定义Qt窗口部件 和 5.2 子类化QWidget
文章目录第五章 创建自定义窗口部件5.1 自定义Qt窗口部件5.2 子类化QWidget第五章 创建自定义窗口部件这一章讲解如何使用Qt开发自定义窗口部件。通过对-一个已经存在的Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件。本章将示范这两种方式,并且也会说明如何把自定义窗口部件集成到Qt设计师中,这样就可以像使用内置的Qt窗口部件一样来使用它们了。最后,将通过展示一个使用了双缓冲技术(一种用于快速绘制的强大技术)的自定义窗口部件来结束这一章的内容。5.1 自定义Q原创 2020-07-24 21:08:30 · 767 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 项目之SpreadSheet源码合集(Qt5可运行版本)
文章目录1 项目运行结果1.1 主界面2 项目源码结构目录详细的源码打包下载地址:也可以关注我的微信公众号:不止编程,回复SpreadSheet获取。1 项目运行结果1.1 主界面2 项目源码结构目录原创 2020-06-13 12:29:27 · 1706 阅读 · 2 评论 -
【学习笔记】C++ GUI Qt4 第四章 4.5 实现其他菜单 和 4.6 子类化QTableWidgetItem
4.5 实现其他菜单void Spreadsheet::recalculate(){ /* recalculate()槽能够对Tools->Recalculate菜单选项做出响应。 * 当必要时,它也会被Spreadsheet自动调用。 * 我们遍历每一个单元格,并且对每一个单元格调用setDirty()把它们标记为需要重新计算。 * 为了在电子制表软件中显示一个Cell对象的值,QTableWidget会再次对该对象调用text()以获得其值,从而使该值重原创 2020-06-12 22:46:35 · 349 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第四章 4.3 载入和保存和 4.4 实现Edit菜单
文章目录4.3 载入和保存4.4 实现Edit菜单4.3 载入和保存现在,我们将使用一种自定义的二进制数格式来实现Spreadsheet文件的载人和保存。将使用QFile和QDataSrean来完成这一工作,由它们共同提供与平台无关的二进制数输入/输出接口。bool Spreadsheet::writeFile(const QString &fileName){ /* 从MainWindow::saveFile()中调用的writeFile()函数把文件输出到磁盘中。 *原创 2020-06-12 22:32:34 · 473 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第四章 4.1 中央窗口部件和4.2子类化QTableWidget
文章目录第四章 实现应用程序的功能4.1 中央窗口部件4.2 子类化QTableWidget第四章 实现应用程序的功能 前两章说明了如何创建Spreadsheet应用程序的用户界面。在这一章中,将通过编写它的底层功能函数来完成这个程序。此外,还将看到如何载入和保存文件,如何在内存中存储数据,如何实现剪贴板操作,以及如何向QTableWidget中添加对电子制表软件公式的支持等功能。4.1 中央窗口部件QMainWindow的中央区域可以被任意种类的窗口部件所占用。下面给出的是对所有可能情形的概述原创 2020-06-12 20:21:02 · 433 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第三章 3.7 多文档和3.8程序启动画面
文章目录3.7 多文档3.8 程序启动画面3.7 多文档#include <QApplication>#include "mainwindow.h"int main(int argc, char *argv[]){ QApplication app(argc, argv); MainWindow mainWin; mainWin. show(); return app.exec();}这个main()函数和以前曾经写过的那些函数稍微有点不同:以变量原创 2020-06-09 23:41:10 · 311 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第三章 3.5 使用对话框和3.6存储设置
文章目录3.5 使用对话框3.6 存储设置3.5 使用对话框这一节将说明如何在Qt中使用对话框——如何创建、初始化以及运行它们,并且对用户交互中的选择做出响应。本节将会使用在第2章中创建的Find、GotoCell和Sort对话框,也会创建一个简单的About 对话框。我们从如图3.12所示的Find对话框开始。由于希望用户能够在Spreadsheet窗口和Find对话框之间进行切换,所以Find对话框必须是非模态(modeless)的。非模态窗口就是运行在应用程序中对于任何其他窗口都独立的窗口。vo原创 2020-06-09 23:36:35 · 347 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第三章 3.4 实现File菜单
文章目录3.4 实现File菜单3.4 实现File菜单在这一节中,将实现那些能够让File菜单项正常工作并且能够对最近打开文件进行管理的槽函数和私有函数。void MainWindow::newFile(){ /* 当用户点击File->New菜单项或者单击工具栏上的New按钮时,就会调用newFile()槽。 * 如果存在还没有被保存的信息, okToContinue( )私有函数就会弹出对话框:“Do you wantto save your changes?"。原创 2020-06-09 23:33:11 · 529 阅读 · 3 评论 -
【学习笔记】C++ GUI Qt4 第三章 3.2 创建菜单和工具栏和3.3设置状态栏
绝大多数现代图形用户界面应用程序都会提供一些菜单、上下文菜单和工具栏。菜单可以让用户浏览应用程序并且可以学会如何处理一些新的事情,上下文菜单和工具栏则提供了对那些经常使用的功能进行快速访问的方法。Qt通过“动作”的概念简化了有关菜单和工具栏的编程。一个动作(action)就是一个可以添加到任意数量的菜单和工具栏上的项。在Qt中,创建菜单和工具栏包括以下这些步骤:● 创建并且设置动作。● 创建菜单并且把动作添加到菜单上。● 创建工具栏并且把动作添加到工具栏上。void MainWindow::cr原创 2020-06-09 23:28:45 · 466 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第三章 3.1 子类化QMainWindow
文章目录第三章 创建主窗口3.1 子类化QMainWindow第三章 创建主窗口这一章讲解如何使用Qt创建主窗口。在本章的最后部分,你将能够创建一个应用程序的完整用户界面,包括菜单、工具栏、状态栏以及应用程序所需的足够多的对话框。而在第四章则会实现程序的相关功能。Spreadsheet电子制表软件类似于我们常用的Excel。首先打开Qt Creator新建一个项目Application->Qt Widgets Application->起名为“q02_Spreadsheet”->类名原创 2020-06-09 23:27:22 · 577 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第二章 2.5 动态对话框和2.6 内置的窗口部件类和对话框类
2.5 动态对话框是指用Qt Designer创建的.ui文件在运行期间创建的对话框. 而不是用.ui文件生成的C++代码创建的对话框.我们可以在运行期间使用QUiLoader类加载ui文件QUiLoader uiLoader; QFile file("sortdialog.ui"); QWidget *sortDialog = uiLoader.load(&file); if (sortDialog) { ... } 我们可以使用QObject::findCh原创 2020-05-31 15:56:24 · 282 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第二章 2.4 改变形状的对话框
这个对话框是一个用于电子制表软件应用程序的排序对话框(Sort对话框) ,在这个对话框中,用户可以选择一列或多列进行排序。在这个简单外观中,允许用户输人一个单一的排序键,而在扩展外观下,还额外提供了两个排序键。More按钮允许用户在简单外观和扩展外观之间切换。我们将在Qt设计师中创建这个对话框的扩展外观,并且在运行时根据需要隐藏排序的第二键和第三键。这个窗口部件看起来有些复杂,但在Qt设计师中可以轻而易举地完成它。简单的诀窍是首先完成主键部分,然后再复制并且粘贴两次就可以获得第二键和第三键所需的内容。1原创 2020-05-31 15:52:56 · 446 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第二章 2.3快速设计对话框
使用Qt Designer进行可视化图形界面开发,可以看作一个传统的工具集,并且不会对编译器强加其他特殊要求。创建对话框的基本步骤:1、创建并初始化子窗口部件;2、把子窗口部件放到布局中;3、设置Tab键顺序;4、建立信号-槽之间的连接;5、实现对话框中的自定义槽。创建项目,包括ui文件,点击打开Qt设计师界面。第一步创建一个标签(QLabel)、一个行编辑器(Line Edit)、一个水平分隔符(Horizontal Spacer)和两个按钮(Push Button)。这一步可先从窗口部原创 2020-05-31 15:49:36 · 687 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第二章 2.2 深入介绍信号和槽
2.2 深入介绍信号和槽槽和普通的C++成员函数几乎是一样的一一可以是虚函数;可以被重载;可以是公有的、保护的或者私有的,并且也可以被其他C++成员函数直接调用;还有,它们的参数可以是任意类型。唯一的不同是:槽还可以和信号连接在一起,在这种情况下,每当发射这个信号的时候,就会自动调用这个槽。connect(sender,SIGNAL(signal),receiver,SLOT(slot));这里的sender发送者和receiver接收者是指向QObject的指针, signal信号和slot槽是不带原创 2020-05-31 15:43:34 · 257 阅读 · 0 评论 -
【学习笔记】C++ GUI Qt4 第二章 2.1子类化QDialog
第二章 创建对话框2.1子类化QDialog//finddialog.h#ifndef FINDDIALOG_H//防止对头文件的多重包含#define FINDDIALOG_H#include <QDialog>//前置声明,编译过程更快class QCheckBox;class QLabel;class QLineEdit;class QPushButton;class FindDialog : public QDialog{ Q_OBJECT//对于使原创 2020-05-29 18:55:55 · 468 阅读 · 1 评论 -
【学习笔记】C++ GUI Qt4 第一章
文章目录第一章 Qt入门1.1 Hello Qt1.2 建立连接1.3 窗口部件的布局开发环境:Windows10Qt5.6.3Qt CreateorVS2013第一章 Qt入门1.1 Hello Qt#include "mainwindow.h"#include <QApplication>#include <QLabel>int main(int argc, char *argv[]){ QApplication a(argc, argv);//原创 2020-05-28 22:32:13 · 362 阅读 · 0 评论 -
【QT从零开始系列12】QT学习心得及资源汇总
文章目录原创 2020-03-07 10:12:21 · 1242 阅读 · 0 评论 -
【QT从零开始系列11】QT学习中遇见的Bug汇总
文章目录1、2、1、2、原创 2020-03-02 19:30:20 · 592 阅读 · 0 评论 -
【QT从零开始系列10】翻金币项目实战
文章目录项目资源获取创建项目 并导入资源设置背景图片开始按钮创建创建开始按钮开始按钮跳跃特效实现选择关卡场景配置新建关卡类选择关卡配置实现返回按钮按下效果实现返回效果创建选择关卡的按钮游戏场景设置创建游戏场景设置场景背景创建返回按钮显示关卡号金币类封装引用关卡数据使用金币数据翻金币特效解决快速点击效果不好周围金币翻转胜利后处理胜利后禁止翻金币胜利图标些许Bug初始值设置为false翻金币时禁止点击...原创 2020-03-01 15:18:25 · 2033 阅读 · 0 评论 -
【QT从零开始系列09】文件
#include "widget.h"#include "ui_widget.h"#include <QFileDialog>#include <QFile>#include <QTextCodec>#include <QDebug>Widget::Widget(QWidget *parent) : QWidget(paren...原创 2020-03-01 15:05:03 · 192 阅读 · 0 评论 -
【QT从零开始系列08】绘图
文章目录绘图事件高级设置绘图设备PixmapQImageQPictureQBitmap(黑白色)QWidget绘图事件//widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ ...原创 2020-03-01 15:03:32 · 346 阅读 · 0 评论 -
【QT从零开始系列07】自定义控件封装和事件
文章目录自定义控件封装Qt中的鼠标事件定时器利用事件定时器类QTimer事件分发器事件过滤器自定义控件封装在项目文件中添加新文件 -> Qt设计师界面类 -> 选择界面模板(一般使用Widget) -> 起类名(SmallWidget)在smallwidget.ui文件中拖拽需要组合的控件,并控制大小在widget.ui中拖拽一个Widget,到主界面后右键选择 -&g...原创 2020-03-01 14:57:56 · 1071 阅读 · 0 评论 -
【QT从零开始系列06】ui控件的使用
文章目录按钮 (Buttons)点击按钮 (Push Button)工具按钮 (Tool Button)单选钮 (Radio Button)多选钮 (Check Box)项目窗口 (Item Widgets)列表容器 (List Widget)树控件(Tree Widget)表格控件(TableWidget)容器(Containers)组合框(Group Box)滚动区(Scroll Area)工...原创 2020-03-01 10:04:08 · 1139 阅读 · 0 评论 -
【QT从零开始系列05】ui设计登录窗口
文章目录登陆界面控件布局控制Widget与控件大小相同改变窗口标题固定窗口大小窗口和控件间隙编辑框(Edit)效果ui文件登陆界面控件Label 标签Line Edit 单行编辑框Push Button 按钮Horizontal Spacer 水平弹簧Vertical Spacer 竖直弹簧Horizontal Layout 纵向布局Grid Layout 方格布局布局Con...原创 2020-03-01 09:38:33 · 851 阅读 · 0 评论 -
【QT从零开始系列04】主窗口各部分、导入资源文件及对话框使用
菜单栏//mainwindow.cpp#include <QMenuBar> //重置窗口大小 resize(600,400); //菜单栏 只能最多有一个 //菜单栏创建 QMenuBar * bar = menuBar(); //将菜单栏放入到窗口中 setMenuBar(bar); //创建菜单 QMe...原创 2020-03-01 09:22:37 · 517 阅读 · 0 评论 -
【QT从零开始系列03】自定义信号与槽、Lambda
01 自定义信号与槽//Teacher 类 老师类//Student 类 学生类//下课后,老师会触发一个信号,饿了,学生响应信号,请客吃饭teacher.h#ifndef TEACHER_H#define TEACHER_H#include <QObject>class Teacher : public QObject{ Q_OBJECTpublic...原创 2020-02-28 14:11:59 · 395 阅读 · 0 评论 -
【QT从零开始系列02】代码创建按钮及信号与槽
代码创建按钮控件的过程1、加入QPushbutton头文件#include <QPushButton> //按钮控件的头文件2、在窗口类中定义按钮控件btnQPushButton * btn = new QPushButton;error: C2001: 常量中有换行符设置是工具->选项->文本编辑器->行为->UTF-8 BOM设置成“如...原创 2020-02-28 11:42:40 · 761 阅读 · 0 评论 -
【QT从零开始系列01】创建Qt窗口
01 创建Qt窗口QWidget – 基类窗口,最简单的窗口,无任何内容QMainWindow 主窗口: 菜单栏、工具栏、状态栏QDialog 对话框:路径和名称不能带中文和空格.pro文件打开项目main.cpp#include "mywidget.h"#include <QApplication> //包含一个应用程序类的头文件//main程序入口 a...原创 2020-02-28 11:38:27 · 648 阅读 · 0 评论