Qt
文章平均质量分 73
Crazy_Tortoise
A Crazy Tortoise
展开
-
Qt 网格编程
Qt的网络编程具有如下特征:(1)Qt的网络接口采用C++语言封装,使用起来更加方便。(2)Qt的网络接口采用事件驱动来实现,进一步提高了易用性。(3)Qt的网络接口具有更好的跨平台性。对于面向连接的TCP编程,Qt提供了QTcpSocket和QTcpServer两个类,其中QTcpServer用来实现服务端的监听,QTcpSocket用来实现服务端和客户端的通信。使用QT转载 2013-10-31 12:46:50 · 1836 阅读 · 0 评论 -
Qt中的 Size Hints 和 Size Policies
Qt 中的 sizeHint 属性,sizeHint() 如何使用?Qt 中的 minimumSizeHint 属性,minimumSizeHint() 如何使用?Qt 中的 sizePolicy 属性,setSizePolicy()、sizePolicy()如何使用? 之前一直对这几个属性搞不清楚,前几天仔仔细细地看了文档解释并做了一些测试,现在来归纳一下:转载 2013-10-31 10:45:26 · 1012 阅读 · 0 评论 -
qt 国际化
在代码中用可以用英文命名各个元件,但是main.cpp中加入以下语句:QTranslator translator;translator.load("hellotr_la");app.installTranslator(&translator);然后运行qmake -project在生成的.pro文件中加一下语句:TRANSLATIONS=hellotr_la.ts运行转载 2013-10-31 15:49:03 · 743 阅读 · 0 评论 -
qmake简介
简单的说qmake给大家提供了一个适合各个平台(当然最好是QT啦)的makefile生成器 1 介绍qmakeqmake是用来为不同的平台的开发项目创建makefile的Trolltech开发一个易于使用的工具。qmake简化了makefile的生成,所以为了创建一个makefile只需要一个只有几行信息的文件。qmake可以供任何一个软件项目使用,而不用管它是不是用Q转载 2013-10-31 11:15:36 · 1303 阅读 · 0 评论 -
Qt paintevent事件
如果要在QWidget中显示特殊图形,就要用到QWidget的paintEvent虚函数。该函数在Widget需要被绘制的时候调用,例如在Widget第一次被显示或者需要更新显示的时候,paintEvent函数都会被调用。在paintEvent函数可以用QPainter类来进行绘制。实际上,使用QPainter类直接在QWidget上绘图稚嫩而过在paintEvent和由paintEven转载 2013-10-31 11:02:12 · 1891 阅读 · 0 评论 -
Qt 的线程与事件循环
周末天冷,索性把电脑抱到床上上网,这几天看了 dbzhang800 博客关于 Qt 事件循环的几篇 Blog,发现自己对 Qt 的事件循环有不少误解。从来只看到现象,这次借 dbzhang800 的博客,就代码论事,因此了解到一些 Qt 深层的实现,虽然是在 Qt 庞大的构架里只算的是冰山的一角,确让人颇为收益。 从 dbzhang800 的博客中转载两篇关于事件循环的文章,转载 2013-10-23 11:46:53 · 865 阅读 · 0 评论 -
Qt文章精选(标题及链接)
原创:浅议Qt的事件处理机制 一浅议Qt的事件处理机制 二Qt的内省机制剖析梦工厂动画与QtQML与C++混合编程使用Qt/Qt Quick宏浅议Q_INVOKABLE与invokeMethod用法全解Qt 在symbian^3, windows 7 phone的用户体验Qt资源链接收藏Qt 好书好文推转载 2013-10-23 14:23:11 · 709 阅读 · 0 评论 -
Qt信号与槽
信号与槽是一种Qt特有的对象间通信的机制,是Qt区别于其他图形系统的基本特征。信号与槽之间是一种松散的连接关系,这种连接关系可以在程序运行时动态改变,这为Qt编程提供了极大的灵活性。 定义信号使用Qt的signals关键字。注意信号没有访问权限,实际上它们都是受保护权限的,也就是说只有定义信号的类自己及派生类才能发射这个信号。信号一般定义为无返回值的函数,这个函数不转载 2013-10-22 09:08:59 · 730 阅读 · 0 评论 -
QMessageBox中按钮汉化|确定,取消
1.方法一:[cpp] view plaincopyprint?QMessageBox mess(QMessageBox::Question, "删除提示", "确认删除所选组件?", NULL); QPushButton *okButton = mess.addButton(tr("确定"), QMessageBox::AcceptR转载 2013-10-28 10:26:26 · 1480 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CBaseFilter
今天用VS2005编译DirectShow程序,发现出来很多莫名其妙的链接错误:如下: error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CBaseFilter::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CBaseFilter@@UAGJPB_WPAPAUIPin转载 2013-10-27 17:22:08 · 2329 阅读 · 0 评论 -
把QString转换成 char * 中需要注意的地方
最近在写一个QT程序。需要把QString 转换成char * 指针。结果遇到程序崩溃的严重错误。在大量的帮助调试下,发现是QString转换成char * 的时候,一定要定义一个QBateArray的变量。不能连写 。以下是官方回复: How can I convert a QString to char* and vice versa ?(trolltech)Ans转载 2013-10-21 11:03:36 · 733 阅读 · 0 评论 -
stdafx.h, stdafx.cpp的作用
在使用Vs2010 Qt插件进行界面层程序的开发的时候,创建了Qt应用程序,在程序中使用了第三方库目录和文件无法使用,最后发现是创建爱你工程时没有创建预编译文件的原因。stdafx的英文全称为:Standard Application Framework Extensions(标准应用程序框架的扩展)。所谓头文件预编译,就是把一个工程(Project)中使用的一些标准头文件(如Wi原创 2013-10-21 08:58:12 · 886 阅读 · 0 评论 -
Qt 键盘、鼠标事件的处理
事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。对于初学者,总会对Qt中信号和事件的概念混淆不清。其实,记住事件比信号更底层就可以了。比如说,我们用鼠标按下界面上的一个按钮,它会发射clicked()单击信号,但是,它怎么知道自己被按下的呢,那就是通过鼠标事件处理的。这里可以看到,鼠标事件比信号更底层。 在Qt中处理事件有多种方法,不过最常用的是重写Qt事件转载 2014-01-06 22:01:39 · 2355 阅读 · 0 评论 -
QListWidget的item上实现右键菜单
问题:如何实现在一个列表中点击右键,如果在Item上面,则有“修改”选项,在其余空白处,则只有“添加”,"删除"选项。实现右键菜单, 从QListWidget中派生出ListWidget,重写void QWidget::contextMenuEvent ( QContextMenuEvent * event ) [virtual protected]当鼠标在ListWidget转载 2013-12-22 14:20:32 · 634 阅读 · 0 评论 -
Qt的QWaitCondition
对生产者和消费者问题的另一个解决办法是使用QWaitCondition,它允许线程在一定条件下唤醒其他线程。其中wakeOne()函数在条件满足时随机唤醒一个等待线程,而wakeAll()函数则在条件满足时唤醒所有等待线程。1、bool wait (QMutex * mutex,unsigned long time = ULONG_MAX)1) 释放锁定的mutex 2)转载 2014-02-18 14:40:34 · 942 阅读 · 0 评论 -
Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)
Qt窗口中的一些小技术总结 //Qt主窗口没有最小化,最大化按钮且最大化显示 int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWinCE w; w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint& ~转载 2014-01-12 20:26:19 · 890 阅读 · 0 评论 -
Qt 中如何捕获窗口停用和激活的消息
最近一直在用Qt做一个简单的俄罗斯方块的游戏,由于要实现一个暂停游戏的功能,就是当鼠标移出正在运行的游戏,点击电脑桌面上的其他位置时,这个时候游戏暂停。在这里把实现过程简单的记录一下,作为一个学习笔记,如果有什么错误之处,还希望大家指出,共同提高,谢谢!刚开始的时候,我很自然的想到要实现这个功能,只要重载一下下面的这个函数:[cpp]void QWidget::focusOutEven转载 2013-12-27 21:24:42 · 682 阅读 · 0 评论 -
Qt学习——不规则窗体形状
窗体可以设置为图片的形状如下:其实就是将窗体设置一个遮罩,此遮罩设为图片的遮罩即可这里还涉及到一些Event的函数重载,具体看代码。头文件:[cpp] view plaincopyprint?#include #include #include class Widget : public QWidget { Q_转载 2014-01-12 10:31:58 · 879 阅读 · 0 评论 -
Qt paintevent事件
一.主要理解一下几个方法和属性:1.QWidget * QScrollView::viewport () const2.void QWidget::paintEvent ( QPaintEvent * ) [虚 保护]3.void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽]4.void转载 2013-12-27 22:00:57 · 622 阅读 · 0 评论 -
Qt::ConnectionType 解析
signal/slot在底层会使用三种方式传递消息。参见QObject::connect()方法:bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::Aut转载 2014-01-08 21:39:01 · 543 阅读 · 0 评论 -
简易处理自定义QListWidget元素
2013年10月14日10:13:47后来经过测试修改,使用起来可以了,不存在后面那行选不中的情况。整理符合要求在操作的时候建议使用链表的(QList)的形式存起来,更加可以封装好对应的数据结构,当在上面修改的时候可以跟着进行数据处理。毕竟界面不交互就没有它的意义了后来调通版 程序下载http://download.csdn.net/detail/jzaicn/639564转载 2014-01-08 09:27:56 · 1852 阅读 · 0 评论 -
Qt 中 mouseMoveEvent
Qt 中对鼠标事件进行处理,可以在QWidget的子类中继承 mouseMoveEvent()函数来实现。protected:void mouseMoveEvent(QMouseEvent * );在构造函数中,需要设置this->setMouseTracking(true);, 对鼠标移动进行跟踪,否则无法捕捉到鼠标移动事件。如果需要实现当鼠标移动到某个QWidget控件上时原创 2014-01-07 18:00:20 · 3924 阅读 · 0 评论 -
QT 框架中快速应用OpenCV 基于视频播放
http://www.51cto.com/php/viewart.php?artID=271265 有些时候我们需要的是处理视频文件,比如AVI,当然也不过是图像序列。在由于QT运行时的多线程机制导致sleep函数不好使,可以通过其提供的QTimer来控制视频文件的播放。在给出例子之前要罗嗦两句QT的信号/槽机制。MFC里面的消息映射固然很快,但是让一个涉其未深的人阅读起来会觉得很晦涩,Q转载 2014-01-06 17:48:07 · 1041 阅读 · 0 评论 -
Qt 模态对话框与非模态对话框及生命周期
如果要设置为模态对话框,最简单的就是使用exec()方法,示例代码如下: MyDialog myDlg; myDlg.exec();也可以使用show()方法,示例代码如下: MyDialog myDlg; myDlg.setModal(true); myDlg.转载 2013-10-21 13:05:29 · 672 阅读 · 0 评论 -
Qt+VS2012+Win8 64Bit安装
学习Qt鸟,当年没听@Coding_Peon(http://weibo.com/u/1764451551?topnav=1&wvr=5&topsug=1)话好好学习QT和Python之类,现在还是要学。。。于是开始找Qt的安装文件,2013年7月初发布了Qt5.1.0,于是直接找最新的下载。下载过程中发现有一个http://qt-project.org 和 qt.digia.com,其中q转载 2013-10-20 14:12:34 · 1529 阅读 · 0 评论 -
Qt 5.1.1 中找不到'GLES2/gl2.h'文件的解决办法。
今天使用Visual Studio建立了一个Qt 5.1.1 项目,可是建立以后编译却发现出现了故障:[html] view plaincopysrc/gui/opengl/qopengl.h(55) : fatal error C1083: Cannot open include file: 'GLES2/gl2.h': No转载 2013-10-20 14:11:54 · 3111 阅读 · 0 评论 -
QT学习笔记之 IconEditor
这次写了一个简单的Icon编辑器,功能很简单的说.....详见代码 ================================================================= iconeditor.h [cpp] view plaincopy#ifndef ICONEDITOR_转载 2013-10-14 15:58:59 · 1384 阅读 · 0 评论 -
QSpinBox子类化一例(进制可变的SpinBox)
目的:创建一个进制可设置的spinbox。类定义子类化 QSpinBox 的关键就是实现下面的四个虚函数:fixup()validate()textFromValue()valueFromText()除此之外,我们要设置采用的进制,所以添加一对函数base()setBase()创建一个 private 的对象,存放私有变量最终定义如下:转载 2013-10-14 14:37:55 · 1135 阅读 · 0 评论 -
Qt中验证器的使用
Qt提供了三个内置验证器类: QDoubleValidator, QIntValidator, QRegExpValidator。QDoubleValidator类: 提供了对浮点数的范围检查.QIntValidator类: 提供了一个确保一个字符串包含一个在一定有效范围内的整数的验证器。Example of use: QLineEdit转载 2013-10-14 14:06:26 · 1034 阅读 · 0 评论 -
Qt namespace Ui
http://blogold.chinaunix.net/u3/95560/showart_1946558.html接下来谈谈namespace Ui { class Dialog: public Ui_Dialog {}; }/****转载 2013-10-14 14:13:58 · 624 阅读 · 0 评论 -
Qt学习笔记(三)事件处理
事件处理1、事件事件是由窗口或者Qt自身产生的,用以响应所发生的各类事情。当用户按下或者键盘或者鼠标按钮时,就可以产生一个键盘或者鼠标事件;当某个窗口第一次显示的时候,就会产生一个绘制事件,用来告知窗口需要重新绘制它本身,从而使窗口可见。大多数事件是作为用户动作的响应而产生的,但是也有一些例外,比如定时器事件,则是由系统产生的。在使用Qt进行编程开发时,基本不需要考虑事件,因为在发生某原创 2013-10-15 09:21:22 · 9662 阅读 · 1 评论 -
Qt 字符串QString arg()用法总结
1、QString::arg()//用字符串变量参数依次替代字符串中最小数值 Cpp代码 QString i = "iTest"; // current file's number QString total = "totalTest"; // number of files to process转载 2013-10-14 13:52:58 · 3286 阅读 · 0 评论 -
Qt自定义事件的实现
初学Qt,用了Qt自带的事件,然后想怎么才能定义自己的事件呢?又如何使用自定义事件呢?看了篇文章,说先要子类化QEvent,然后定义自己的QEvent::Type,然后重写QWidget::event()函数,然后就可以调用QCoreApplication::sendEvent()或者QCoreApplication:;postEvent()发送事件就好了。但我比较笨,还是云山雾罩,不知道怎么下手转载 2013-10-15 10:10:44 · 918 阅读 · 0 评论 -
QT中窗口刷新事件的学习总结
一.主要理解一下几个方法和属性:1.QWidget * QScrollView::viewport () const2.void QWidget::paintEvent ( QPaintEvent * ) [虚 保护]3.void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [转载 2013-10-15 08:51:14 · 1976 阅读 · 0 评论 -
Qt学习笔记(二)布局管理
布局管理主要用于在窗体中摆放每一个窗口部件,以及自动调整窗口部件在窗体中的大小和位置。 Qt提供了多个用于摆放窗口部件的类: QHBoxLayout 、 QVBoxLayout 、 QGridLayout 、 QStackedLayout 。 其中前 3种是最重要的布局管理器,其用法也很简单,使用 addWidget()将需要摆放的窗口部件添加到 Layout里面。 Layout本身也可以转载 2013-10-14 23:14:43 · 7520 阅读 · 0 评论 -
QAction
Actions 可以被添加进菜单栏和工具条,并且自动保持同步。例如,在文字处理程序中,单击工具条上的“粗体”按扭,则相应的菜单项“粗体”也会被自动选中。 QAction 作为菜单项可以为其单独设置字体,用setFont() 函数。 setIcon(), setText(), setIconText(), setShortcut(), setStatusTip(),转载 2013-10-13 15:03:39 · 1065 阅读 · 0 评论 -
Qt中Ui名字空间以及setupUi函数的原理和实现
用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能。 .pro文件是供qmake使用的文件,不是本文的重点【不过其实也很简单的】,在此不多赘述。所以呢,还是从main开始,[cpp] view plaincopy#include #include "mainwindow.h" i转载 2013-10-12 23:53:04 · 740 阅读 · 0 评论 -
Qt常用类QPushButton
QPushButton 类代表按钮,它继承了 QAbstractButton 类,因此也有其全部的属性、信号和槽。构造QPushButton 类支持以下构造函数:QPushButton(QWidget *parent = 0);QPushButton(const QString &text, QWidget *parent = 0);QPushBut转载 2013-10-12 22:25:27 · 1100 阅读 · 0 评论 -
Qt学习笔记(一)
1、在Qt Creator中创建项目,当工程更改之后,要注意经常qmake以保持最新状态。原创 2013-10-14 23:15:45 · 2679 阅读 · 0 评论 -
QT事件传递与事件过滤器
Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发. Qt事件的类型很多, 常见的qt的事件如下:键盘事件: 按键按下和松开.鼠标事件: 鼠标移动,鼠标按键的按下和松开.拖放事件: 用鼠标进行拖放.滚轮事件: 鼠标滚轮滚动.绘屏事件: 重绘屏幕的某些部分.定时事件: 定时器到时.焦点事件: 键盘焦点移动.进入和离开事件: 鼠标移入widget之内,或是移转载 2013-10-15 10:13:49 · 870 阅读 · 0 评论