自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嘒彼小星的笔记

嘒彼小星,三五在东。 肃肃宵征,夙夜在公

  • 博客(72)
  • 资源 (7)
  • 收藏
  • 关注

原创 用50行代码实现Linux系统usb设备插拔检测(基于Qt的神技能)

本文介绍一种简单有效的办法,不需要了解usb接口背后的细节,借助linux系统提供的lsusb命令和Qt的QProcess类即可实现。

2022-10-19 11:22:18 3483 2

原创 在Linux系统安装Python3.5 及Matplotlib库

在Linux上安装Python3.5,按照官方文档非常简单,就像安装其他程序一样几个通用的命令,但是想要安装后满足需求,也不是很容易。更何况,我们现在按照Python的目的都是为了进行机器学习相关分析,安装Matplotlib也是一个刚需。在安装Matplotlib时也需要安装其他一些依赖的系统库,甚至会造成Python的重新安装,本文就介绍在RedHat7.1上安装Python3.5和Matpl...

2018-05-14 17:00:43 5696

原创 调试时直接显示QString的字符值(包含windows和linux)

调试小窍门:调试时直接显示QString的字符值(包含windows和linux)

2017-10-25 17:06:48 6270

原创 在Windows 系统安装基于Python3.5 版本的Matplotlib库

在Windows操作系统上安装Python3.5版本的Matplotlib记录

2017-08-10 08:59:12 6968 1

原创 Qt那些类---用QCryptographicHash类生成MD5,SHA-1,SHA-2

Qt类QCryptographicHash的使用介绍,用于生成hash散列表的类,目前能够实现的加密方式有:MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512。

2017-08-08 15:25:34 2552 1

翻译 14-1 创建线程()

Qt 多线程编程

2017-05-31 16:26:39 1395 2

翻译 14. (多线程)Multithreading

传统的GUI应用只有一个线程,一次只执行一个操作。如果用户从界面进行了一个非常耗时的操作,在操作正在执行的时候,界面是没有任何响应的。在第七章事件处理中提出了这个问题的一个解决方案。多线程是另一个解决方案。在一个多线程的应用中,GUI运行在独自的线程中,其他的操作则发生其他的一个或者多个线程中。在多线程应用中,不管进行多么密集的操作,界面仍然能够正常相应。在单处理器的机器上,由于多线程的影响,

2017-05-31 16:14:05 1596

原创 斐波那契数列的两种简单实现

斐波那契数列的两种实现

2017-05-26 13:38:49 1882 1

原创 对那些想要电子版的网友说声对不起

翻译这本书纯属个人兴趣,但由于时间关系已经很久没有做了。很惭愧。 看了很多网友留言说想要电子版,很遗憾,当初是一章一章翻译的,没有整合在一起,所以我也没有电子版。因为水平有限,翻译的质量就不多说了,希望大家把这里的文章做个参考,批判着学习的态度来看吧,如果真的想学习,可以买本书,国内已经有翻译本书的书籍了。 个人意见,我觉得这本书的前七章还是比较有价值的,是用来进门的。后面的那些章

2009-08-20 22:11:00 4899 10

翻译 10-3 实现自定义模型(Implementing Custom Models)

Qt预定义的类已经提供了方便处理和显示数据的方式。然而,一些数据源不能直接使用这些定义好的模型,这就需要创建自定义的模型,优化对这些数据的处理。在创建自定义模型之前,让我们首先回顾一下Qt的model/view结构的主要概念。在一个模型中每一个数据都有一个模型的索引(a model index)和一组属性,这些属性称为角色(roles),这些属性能够用任何类型的数据保存。在这一章的前几节最常用

2008-10-26 10:39:00 8378 11

翻译 10-2 使用已有的模型类(Using Predefined Models)

 Qt已经提供了一些可以和视图类配合使用的模型: QStringListModel 保存一系列字符串

2008-05-06 21:52:00 6874 3

翻译 10-1 使用数据视图便捷类(Using the Item View Convenience Classes)

通常使用Qt提供的数据视图便捷类(item view convenience class)要比定义一个模型简单的多,适合无需分离模型和视图的操作。在第四章中我们使用了QTableWidget和QTableWidgetItem实现了表格的功能。在这一节中,我们将介绍这些便捷类的使用。第一个例子是一个只读的QListWidget,第二个例子是一个可编辑的QTableWidget,第三个例子显示的是

2008-04-20 11:05:00 10377 10

翻译 第10章 数据视图类(Item View Classes)

很多Qt应用程序都允许用户查找,查看,编辑一个数据集中的一个具体数据。这些数据可能存在在一个文件中,或者在数据库中,也可能来自于网络。Qt提供的数据视图类能很好的处理这些数据。在Qt早先的版本中,数据视图控件中保存了一个数据集中的所有数据。用户在这个控件中对数据进行查找,编辑等操作,有时候还要把数据写回到数据源中。这种处理方式很容易使用,但是当数据量很大时就会影响程序性能,也不能将一个数据源用

2008-04-20 10:53:00 6653

翻译 9-3 处理剪贴板(Clipboard Handling)

很多应用程序使用Qt提供的剪贴板。例如:QTextEdit类提供了cut(),copy()和paste()槽函数,也能相应键盘的快捷键。客户程序只要编写很少的代码,甚至不写代码。如果我们正在开发自己的类,可以使用函数QApplication::clipboard()得到Qt的剪贴板,该函数返回的是一个QClipboard类型对象的指针。使用这个指针很容器对剪贴板进行读写访问,调用setText

2008-03-04 21:53:00 7025 5

翻译 9-2 支持自定义数据类型的托拽(Supporting Custom Drag Types)

 在上一节的例子中,我们使用类QMimeData表示普通的MIME类型。调用QMimeData::setText()进行对文本的托拽,调用QMimeData::urls()得到托拽到url文本列表。如果我们想托拽普通的文本,HTML文本,图片,URLs,颜色等,都可以使用QMimeData类。但是 如果我们需要对自定义的类型进行托拽,就需要使用下面的方法:1.    用QByteArray

2008-02-26 08:46:00 6041 4

翻译 9-1 支持托拽功能(Enabling Drag and Drop)

 9-1 支持托拽功能(Enabling Drag and Drop)名次解释:Drag:拖动,拉动,计算机中就是用鼠标拖动的过程Drop:滴下,落下,松开,计算机中就是鼠标拖动到某一个位置后放开左键的过程,Drag后总会Drop的。Drag和Drop是两个完全不同的动作。Qt中的控件可以作为拖动(drag)的地点,也可以作为松开(drop)的地点,或者同时作为拖动和松开的地点

2007-10-16 21:48:00 8694 4

翻译 8-5 用OpenGL绘图(Graphics with OpenGL)

  8-5 用OpenGL绘图(Graphics with OpenGL)OpenGL是绘制2D和3D模型的标准API。在OpenGL基础上,Qt可以使用QtOpenGL模块绘制3D图形。本节假设您已经熟悉OpenGL。如果对OpenGL不了解,可以浏览http://www.opengl.org/。在Qt应用程序中使用OpenGL绘图非常简单:我们需要从QGLWidget继承自己的

2007-10-08 22:24:00 10199 3

翻译 8-4 打印(Printing)

 在Qt中,打印与在QWidget,QPixmap或者QImage绘图很相似,一般步骤如下:1、创建绘图设备的QPrinter;2、弹出打印对话框,QPrintDialog,允许用户选择打印机,设置属性等;3、创建一个QPrinter的QPainter;4、用QPainter绘制一页;5、调用QPrinter::newPage(),然后绘制下一页;6、重复步骤4,5,直

2007-10-08 22:12:00 11107 1

原创 坚持一件事比决定一件事难多了

最初决定翻译这本书是学习的需要,也是 想在全民blog的年代在网络上也有自己的一片天地。就是这样简单。虽然也想到了坚持会很难,但是我还是一直给自己打气,也一直在坚持,但是整整一个6月,却一篇都没有翻译,我不想找什么理由,如果有就是我自己太懒了。决定很容易坚持却很难。7月,在炎热中,我把8.2和8.3上传完,发现已经快翻译了全书一半了,不由得开心,也有点担心,我还能翻译下去吗?从开始写blo

2007-07-24 22:15:00 5381 17

翻译 8-3 使用QImage进行高质量绘制(High-Quality Rendering with QImage)

 在进行绘图时,我们经常要面对速度和效率两者之间矛盾。在X11和MacOsX系统上,在QWidget和QPixmap绘图要依赖平台自身的绘图引擎。在X11上,与X server的通信很少,Qt只是发送绘图命令而不是真正的绘图数据。这种画法的不足是Qt要收到平台自身绘图引擎的限制。在X11上,消除锯齿和支持分数坐标这些功能只有在Xserver上安装了XRender扩展才能实现;在MacO

2007-07-24 21:50:00 16724

翻译 8-2 坐标变换(Painter Transformations)

 在QPainter的初始坐标系统中,点(0,0)位于绘图设备的左上角。X轴坐标向右递增,y轴向下递增,一个象素占据1×1的面积。需要说明的一点是一个象素的中心位于坐标的一半处。例如,左上角位于点(0,0)和点(1,1)之间区域的象素,它的中心位于(0.5,0.5)。如果我们使用QPainter绘制一个位置在(100,100)的象素,QPainter会在每个坐标值上增加0.5,以坐标(10

2007-07-24 21:46:00 10737

翻译 8-1 用QPainter绘图(Painting with QPainter)

 要在绘图设备(paint device,一般是一个控件)上开始绘制,我们只要创建一个QPainter,把绘图设备指针传给QPainter对象。例如:oid MyWidget::paintEvent(QPaintEvent *event){    QPainter painter(this);    ...} 使用QPainter的draw…()函数我们可以绘制各种

2007-05-29 21:52:00 31969 4

翻译 第八章序 2D和3D图形系统(2D and 3D Graphics)

 Qt的2D图形系统的基础是类QPainter。QPainter能够绘制各种几何图形(点,线,矩形,椭圆,圆弧,弦,扇形,多段线,贝赛尔曲线),还能绘制位图,图像和文字。此外QPainter还提供了很多高级功能:如平滑(平滑文字和几何图形的边界),透明度,渐变色,和矢量路径。QPainter还支持矩阵变换,使绘制2D图形和分辨率无关。 QPainter能够在“绘图设备”上绘图,如QWi

2007-05-29 21:35:00 6114

翻译 7-3 系统繁忙时的响应(Staying Responsive During Intensive Processing)

  当我们调用QApplication::exec()时,Qt就开始了事件循环。启动时,Qt发出显示和绘制事件,把控件显示出来。然后,事件循环就开始了,不停检查是否有事件发生,然后把事件分派到程序中的QObject对象。一个事件正在处理时,其他的事件已经产生并加入到Qt的事件队列中,如果我们在处理某一个事件时花费了很多事件,这期间用户界面就不会有任何响应。例如,在程序保存文件时,窗口产生的事件

2007-05-29 20:56:00 9433

翻译 7-2 安装事件过滤器(Installing Event Filters)

  Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理。假设我们有一个CustomerInfoDialog控件,由一些QLineEdit控件组成。我们希望使用Space键得到下一个QLineEdit的输入焦点。一个最直接的方法是继承QLineEdit重写keyPressEvent()函数,当点击了Space键时,调用focu

2007-05-29 20:52:00 10848 2

翻译 7-1 重写事件处理函数(Reimplementing Event Handlers)

 在Qt中,一个事件是QEvent的子类的对象。Qt能够处理上百种类型的事件,每一类型的事件由一个枚举值确定。例如,对鼠标点击事件,QEvent::type()返回的值为QEvent::MouseButtonPress。很多情况下,一个QEvent对象不能保存有关事件的所有信息,例如,鼠标点击事件需要保存是左键还是右键触发了这个信息,还要知道事件发生时鼠标指针的位置,这些额外的信息储存

2007-05-24 10:15:00 6460

原创 第七章(序)事件处理-(Event Processingn)

 事件是视窗系统或者Qt本身在各种不同的情况下产生的。当用户点击或者释放鼠标,键盘时,一个鼠标事件或者键盘事件就产生了。当窗口第一次显示时,一个绘制事件会产生告诉新可见的窗口绘制自己。很多事件是为了相应用户动作产生的,也有一些事件是由 系统独立产生的。在用Qt编程时,我们很少要考虑事件,当一些事件发生时,Qt控件会发出相应的信号。只有当实现用户控件或者需要修改现有控件的行为时,我们才需

2007-05-24 09:59:00 3964 2

翻译 6-6 多文档界面(Multiple Document Interface)

 一个主窗口区域内能够提供多个文档的程序称之为多文档程序,或者MDI程序。在Qt中,一个MDI程序是由QWorkspace类实现的,把QWorkspace做为中央控件,每一个文档窗口做为QWorkspace的子控件。MDI程序的惯例是提供一个window菜单,管理窗口的显示方式和当前打开的窗口列表。正在活动的窗口由选中记号标示。用户可以点击window菜单中窗口列表中的一个窗口把它激活。

2007-05-17 21:51:00 6638

翻译 6-5 可停靠控件和工具栏(Dock Widgets and Toolbars)

 可停靠控件能够停靠在QMainWindow中或者作为一个独立窗口浮动。QMainWindow提供了四个可停靠控件的地方:上方,下方,左方,右方。Microsoft Visual Stadio程序和Qt Linguist程序使用大量的可停靠窗口实现更为复杂的用户界面。在Qt中,可停靠窗口是QDockWidget的一个实例。Figure 6.13. A QMainWindow with a

2007-05-09 22:20:00 7112 1

翻译 6-4 滚动区域(Scrolling Areas)

  英汉对照:viewport(视图)QScrollArea类提供了一个可以滚动的可视窗口和两个滚动条。如果我们想给一个控件加上一个滚动条,从QScrollArea继承会比设计我们自己的QScrollBar类实现滚动函数更简单。Figure 6.11. QScrollAreas constituent widgets  调用QScrollArea的setWidget()函

2007-04-26 22:18:00 5535

翻译 6-3 分隔控件(Splitters)

中英文对照Splitter handles(分隔条) 一个QSplitter控件中可以包含其他控件,这些控件被一个分隔条隔开,托拽这个分隔条,里面的控件的大小可以改变。QSplitter控件经常做为布局管理器使用,给用户提供更多的界面控制。QSplitter控件中的子控件总是按顺序自动并肩排列(或者上下排列)。相邻的控件之间有一个分隔条。下面是创建图6.7的窗体的代码:int main

2007-04-26 20:44:00 11753 2

翻译 6-2 分组布局(Stacked Layouts)

 QStackedLayout类把子控件进行分组或者分页,一次只显示一组或者一页,隐藏其他组或者页上的控件。QStackedLayout本身并不可见,对换页也不提供本质的支持。图6.5中的建头和黑灰色的框架是Qt Designer提供为了方便设计。为了方便起见,Qt还提供了类QStackedWidget,这个类的布局管理器为QStackedLayout。Figure 6.5. QStack

2007-04-26 20:38:00 9735 1

翻译 6-1 排列窗体上的控件(Laying Out Widgets on a Form)

 中英文对照:form(窗体),layout(布局或者排列,意思是进行窗体上控件的排列的过程,如大小位置等)absolute positioning(绝对位置定位),manual layout(手工布局), layout managers(布局管理器)Qt中有三种方式对窗体上的控件进行布局管理:绝对位置定位(absolute positioning),手工布局(manual layou

2007-04-25 21:54:00 10512 1

翻译 第六章序-布局管理(Chapter 6. Layout Management)

 窗体上的所有的控件必须有一个合适的尺寸和位置。Qt提供了一些类负责排列窗体上的控件,主要有:QHBoxLayout,QVBoxLayout,QGridLayout,QStackLayout。(有时在译文中我会把这些类叫做布局管理类)这些类简单易用,无论在代码中还是用Qt Designer开发程序都能用到。 使用这些Qt布局管理类的另一个原因是,在程序改变字体,语言或者在不同的平台上运

2007-04-24 22:16:00 3467

翻译 5-4 双缓冲技术(Double Buffering)(5、类PlotSettings实现)

 下面是PlotSettings的实现:PlotSettings::PlotSettings(){    minX = 0.0;    maxX = 10.0;    numXTicks = 5;    minY = 0.0;    maxY = 10.0;    numYTicks = 5;}在构造函数中,把两个坐标轴的初始化为从0到10,分为5个刻度

2007-04-24 22:13:00 2872

翻译 5-4 双缓冲技术(Double Buffering)(4、私有函数的实现)

  以下是私有函数的实现:   void Plotter::updateRubberBandRegion(){    QRect rect = rubberBandRect.normalized();    update(rect.left(), rect.top(), rect.width(), 1);    update(rect.left(), rect.top(), 1

2007-04-24 22:11:00 3070

翻译 5-4 双缓冲技术(Double Buffering)(3、事件处理函数)

 以下是Plotter控件的事件处理函数部分  void Plotter::paintEvent(QPaintEvent * /* event */){    QStylePainter painter(this);    painter.drawPixmap(0, 0, pixmap);    if (rubberBandIsShown) {        paint

2007-04-24 22:06:00 3631

翻译 5-4 双缓冲技术(Double Buffering)(2、公有函数实现)

 #include #include using namespace std;#include "plotter.h"以上代码为文件的开头,在这里把std的名空间加入到当前的全局命名空间。这样在使用里的函数时,就不用前缀std::了,如可以直接使用函数floor(),而不用写成std::floor()。 Plotter::Plotter(QWidget *paren

2007-04-24 21:59:00 4244

翻译 5-4 双缓冲技术(Double Buffering)(1、简介和源代码部分)

 这一节实在是有些长,翻译完后统计了一下,快到2w字了。考虑到阅读的方便和网络的速度,打算把这节分为5个部分,第一部分为双缓冲技术的一个简介和所有的代码,如果能够看懂代码,不用看译文也就可以了。第二部分为Plotter控件的公有函数的实现,第三部分为Plotter的事件处理函数的实现,第四部分为Plotter控件的私有函数实现,第五部分为辅助类PlotSettings的实现。这里给出一些常

2007-04-24 21:52:00 5286 1

翻译 5-3 把自定义控件集成到Qt Designer中(Integrating Custom Widgets with Qt Designer)

 要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在。有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级”法和插件法。升级法最为简便快捷。顾名思义,升级法就是把Qt自有的控件进行升级改造一番。找一个Qt自有的控件,如果它和我们新加的自定义控件有着相似的API,那么只要在Qt Designer的对话框里面完成一些新控

2007-04-10 10:51:00 4980 1

google test 1.8 release

google test 1.8 release gtest是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。

2019-03-07

vncviewer64

windows 64位上的vnc客户端,绝对绿色,不需安装,直接运行。

2018-06-28

tigervnc-server

tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64及其相关依赖包

2018-06-27

PythonIndent(Notepad++插件)

notepad++上写python代码的插件,自动实现缩进

2017-08-22

用C++实现SHA-2算法家族

用C++实现的SHA-2算法家族,SHA224,SHA256,SHA384,SHA512,SHA512_224,有测试程序,在VS2013下测试有效。

2017-08-08

C++ GUI Programming with Qt 4, Second Edition

The Only Official, Best-Practice Guide to Qt 4.3 Programming. Using Trolltech's Qt you can build industrial-strength C++ applications that run natively on Windows, Linux/Unix, Mac OS X, and embedded Linux without source code changes. Now, two Trolltech insiders have written a start-to-finish guide to getting outstanding results with the latest version of Qt: Qt 4.3. Packed with realistic examples and in-depth advice, this is the book Trolltech uses to teach Qt to its own new hires. Extensively revised and expanded, it reveals today's best Qt programming patterns for everything from implementing model/view architecture to using Qt 4.3's improved graphics support. You'll find proven solutions for virtually every GUI development task, as well as sophisticated techniques for providing database access, integrating XML, using subclassing, composition, and more. Whether you're new to Qt or upgrading from an older version, this book can help you accomplish everything that Qt 4.3 makes possible.

2017-05-26

Vm虚拟机中Linux扩展磁盘空间

扩展虚拟机磁盘空间,当虚拟linux装好后,磁盘空间不够时的解决方案

2012-11-14

空空如也

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

TA关注的人

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