C++ GUI Qt 4 编程
HelloZEX
[2018·10·18]所谓核心竞争力,永远是自身的实力!
[2022·4·4]我需要换一个大脑!
展开
-
第八章 二维图形 - QPainter
前面大多学的是控件用户界面的安排学习,现在是Qt一个极其重要的方面,就是在绘制二维图形方面的强大功能,在使用得当情况下绝大部分你需要的界面和图形都能非常好看,也有很多自带的的和第三方图形库能够使用,会比手动绘制方便的多,就看你用的溜不溜了。 Qt的二维图形引擎是基于QPainter类的。QPainter既可以绘制几何形状也可以绘制像素文字等元素。还支持一些高级特性,反走样、像素混原创 2017-10-27 09:45:57 · 569 阅读 · 0 评论 -
【C++笔记】OpenCV图像Mat格式转换为QT中QImage并显示zai Qlabel上
Mat rgb; QImage imgGray_img; if (imgGray.channels() == 1) { imgGray_img = QImage((const unsigned char*)(imgGray.data), imgGray.cols, imgGray.rows, /*imgGray.cols*imgGray.channels(),*/ QImage::F...原创 2018-07-22 21:26:34 · 1470 阅读 · 0 评论 -
【Qt笔记】Qt学习笔记
《Qt学习笔记》 1 Qt-信号槽 Qt5开始信号槽有两种连接方式:Qt5之前:方法一:connect(sender,SIGNAL(signal),receiver,SLOT(slot));Qt5之后:方法二:connect(sender,&Sender::signal,receiver,&Receiver::slot);对于方法二,是不需要声明槽函数为(private slots...原创 2018-06-28 11:28:52 · 579 阅读 · 0 评论 -
第九章 Qt拖放
拖放是Qt实现的应用程序内或者多个应用程序之间传递信息的一种直观的现代操作方式。有没有想到windows的剪贴板?数据的移动和复制功能都异曲同工嘞~一、使拖放生效 拖放包含两个动作:拖动 和 放下。Qt窗口部件可以作为拖动点(drag site)、放下点(drop site)或者同时作为拖动和放下点使用。 第一个例子用来说明如何让一个Qt应用程序接受另一个程序触发的原创 2017-11-01 09:27:49 · 569 阅读 · 0 评论 -
第七章 Qt事件(event)处理
一、事件处理器 事件是由窗口系统或者Qt自身产生的,以响应各类事件。当用户按下键盘或者鼠标就会产生相关事件,系统会捕捉到该事件。在使用Qt进行编程时,基本不需要考虑事件,因为发生事件时,Qt会自己发出信号,不过自定义窗口就要特别注意了。 不应该混淆“事件“和”信号”这两个概念。一般情况下,在使用窗口部件时候,信号是十分有用的;而实现窗口部件,事件则十分有用哦~原创 2017-10-26 09:21:18 · 12222 阅读 · 0 评论 -
第六章 多文档界面
在主窗口的中央区域能够提供多个文档的那些应用程序就称为多文档界面(MDI)。Qt中把QMdiArea类作为中央窗口部件,并且每一个文档窗口都是这个类的子窗口。 对于多文档界面应用程序有一个管理,就是为他提供一个Window菜单,这个菜单中包含一些管理这个窗口以及窗口列表的命令。激活窗口会使用一个选择标记表示出来。用户在window菜单中单击代表特定窗口的一项,就可以激活任何窗口。原创 2017-10-25 10:08:33 · 1237 阅读 · 0 评论 -
第六章 布局管理
在Qt Designer中使用会比代码中方便,但是代码中的布局会比较灵活。使用Qt布局类的一个重要原因是:他可以确保窗体能够自动适应不同的字体、语言、和系统平台。 主要类有QHBoxLayout、QVBoxLayout、QGridLayout和QStackLayout。可执行布局管理的类还有QSplitterr、QScrollArea、QMainWindow和QMidArea。一、在原创 2017-10-24 09:07:43 · 546 阅读 · 0 评论 -
第五章 Qt双缓冲(double buffering)
双缓冲是一种图形用户界面编程技术,它包括把一个窗口部件渲染到一个脱屏像素映射中以及把这个像素映射复制到显示器上。Qt的早期版本用于 消除屏幕闪烁以及提供一个漂亮的用户界面。 Qt4开始QWidget会自己解决窗口闪烁的问题,但是如果窗口部件的绘制方非常复杂并且需要连续重复绘制时,明确指定双缓冲则非常有用。把窗口部件固定不变的存储为一个像素映射,为绘制做准备,当想要做一些小的改动时,并不需原创 2017-10-23 15:25:30 · 2270 阅读 · 0 评论 -
第五章 创建自定义窗口部件
对已经存在的Qt窗口进行子类化或者直接对QWidget子类化可以快速创建自己的自定义窗口部件。一、自定义窗口部件 十六进制的QSpinBox 本来QSpinBox仅支持十进制数据的,现在子类化接收并显示十六进制数值。头文件hexspinbox.h#ifndef HEXSPINBOX_H#define HEXSPINBOX_H#include class Q原创 2017-10-23 09:10:54 · 790 阅读 · 0 评论 -
第四章 实现应用程序的功能
第四章 实现应用程序的功能原创 2017-10-22 15:52:54 · 713 阅读 · 0 评论 -
第八章 基于项的图形视图
对于用户自定义的窗口部件和绘制一个或者几个项来说,使用QPainter是理想的。在绘图中,如果需要处理从几个到几万个项时,而且要求用户能够单击拖动选取想,Qt的视图类提供了这一解决方案。、 Qt的视图体系包括一个由QGraphicsScene充当的场景和一些由QGraphicsItem的子类充当的场景中的项。场景以及它的项就能在视图中显示出来了,用户就能看到了,它由QGraphicsVi原创 2017-10-30 09:53:22 · 432 阅读 · 0 评论 -
第八章 用QImage高质量绘图
在进行绘图时,我们经常要面对速度和效率两者之间矛盾。在X11和MacOsX系统上,在QWidget和QPixmap绘图要依赖平台自身的绘图引擎。在X11上,与X server的通信很少,Qt只是发送绘图命令而不是真正的绘图数据。这种画法的不足是Qt要收到平台自身绘图引擎的限制。 在X11上,消除锯齿和支持分数坐标这些功能只有在Xserver上安装了XRender扩展才能实现; 在MacOs原创 2017-10-30 09:37:31 · 1428 阅读 · 0 评论 -
第三章 创建主窗口
目的:创建一个主窗口,具有菜单、工具栏、状态栏和对话框之类的界面和功能。一、子类化QMainWindow(电子制表)mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include #include "spreadsheet.h"#include原创 2017-10-20 17:44:08 · 889 阅读 · 0 评论 -
第八章 坐标系统变换
一、使用QPainter绘图http://blog.csdn.net/hellozex/article/details/78361311二、坐标系统变换 在QPainter的默认坐标系中,点(0,0)位于坐标绘制设备的左上角,x坐标向右,y坐标向下,类似图像处理中的图像像素排列,默认每个像素占用1*1大小的区域。 理论上,像素的中心取决于版像素坐原创 2017-10-28 10:36:41 · 569 阅读 · 0 评论 -
第二章 创建对话框
学习过程中的笔记,用于分享和自己以后查看复习,不免会遇到错误欢迎指正。一、子类化QDialog先上代码finddialog.h#ifndef FINDDIALOG_H#define FINDDIALOG_H#include #include #include #include #include #include #include class Find原创 2017-10-20 10:59:28 · 418 阅读 · 0 评论 -
第一章 Qt入门
2017/10/20HelloZEX 感谢奇趣科技公司(Trolltech,Qt门户:https://www.qt.io)为我们提供了Qt(一种图形用户界面框架)。利用Qt提供的C++应用程序开发框架,可以轻松实现“一次编写,随处编译”跨平台解决方案。Qt5相对于4修改最明显的就是Qt的GUI的模块的修改,而且Qt5溢出了Qt OpenGL模块,重新复合在Qt Gu中了,Qt5直接原创 2017-10-20 09:29:06 · 430 阅读 · 0 评论 -
【Qt】UI显示中文
QT UI显示中文的三种方法最近在用Qt做项目,遇到UI不能显示中文的问题,发现有3种方法可以解决,先记录一下方法一QString::fromLocal8Bit("你好中国")1方法二QStringLiteral("你好中国")1方法三在.cpp中加入#pragma execution_character_set("utf-8")...原创 2018-07-27 21:06:49 · 662 阅读 · 0 评论