现在位置: 首页 > Qt
绘图设备是指继承QPainterDevice的子类。Qt一共提供了四个这样的类,分别是QPixmap、QBitmap、QImage和QPicture。其中,QPixmap专门为图像在屏幕上的显示做了优化,而QBitmap是QPixmap的一个子类,它的色深限定为1,你可以使用QPixmap的isQBitmap()函数来确定这个QPixmap是不是一个QBitmap。QImage专门为图像的像素级访问做了优化。QPicture则可以记录和重现QPainter的各条命令。下面我们将分两部分介绍这四种绘图设备。 QPixma...
阅读全文
1.类声明中没有Q_OBJECT 2.看看槽函数是否有声明 3.信号和槽的参数是否对应
阅读全文
2015-01-25 06:47 工业·编程 ⁄ 共 1203字 评论 1 条
1.Qt布局的作用 Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而达到不改变整体的布局的结构的效果。相对于通过设定绝对位置来搭建界面的方法来讲有如下优点 1.1.父窗口改变的时候,子窗口不能作出相应的调整。 1.2.不用人工计算这些位置和大小 2.Qt中的布局类及继承关系: QBoxLayout...
阅读全文
1.事件是怎么产生的 事件一般是由用户的动作作用于窗口系统,或者是Qt自身或者系统独立产生的。 2.事件和信号又有什么区别 事件和信号在初看的时候确实很容易混淆,但是这两者是不同的概念, 事件的产生者是窗口系统或者系统内部,但是信号的产生者一般是对象。 在普通的GUI编程中往往不需要考虑事件,在使用窗口部件的时候,我们用的是信号,而在实现窗口部件的时候往往一般要考虑事件。 同时事件是非阻塞的只要把事件交到事件...
阅读全文
1.Qt的元对象与标准C++中对象的区别 Qt中的对象系统和标准C++中的对象系统是存在区别的,更确切得讲前者是对后者的一种扩展。每个元对象具有一个元信息,包含有对象的类名以及相应的信号和槽的列表,以及指向对应函数的指针。 Qt中的元对象系统和标准C++系统的区别有哪些? 1.支持对象间使用信号和槽的机制进行通信 2.动态对象转化 3.可查询可设计的对象属性 4.层次结构可查询的对象树 5.安全的指针管理 6.支持国际化的文本转化...
阅读全文
1.功能:用于对象之间的通信 2.传统的GUI如何实现对象之间通信的? 使用的是回调函数(指向某个函数的指针),相比之下信号与槽的机制较为灵活,但是这种灵活是以损失性能为前提的,只不过信号与槽机制的性能仍然较高。 3.什么对象才能发射信号? 只有定义过该信号的类或者其派生类才能够发射该信号。 4.信号与槽的工作方式: 当一个信号被发射的时候这些槽就会被执行,只有当所有的槽正确放回后,发射函数才会返回。当一个信号...
阅读全文
2015-01-21 06:41 工业·编程 ⁄ 共 320字 暂无评论
1.只有继承自QObject的子类才可以使用Qt的属性系统 2.在类的定义文件中使用Q_PROPERTY()声明一个属性 3.属性相当于类的一种数据成员,这些数据成员有如下特点:必须有读函数,可选的部分有写函数,重置函数,以及DESIGNABLESCRIPTABLE STORED 特性,写函数是用于设置这个属性值,读函数是用于访问这个属性值,重置函数是用于恢复这个属性的默认值. 这三个函数可以是从父类中继承,但是在多继承体系中这三个函数必须继承自第一个父...
阅读全文
2015-01-20 06:39 工业·编程 ⁄ 共 2450字 暂无评论
QThread从QObject派生。它发出信号来表明线程开始了或结束了。并且也提供了几个槽。 更有趣的是,QObject可以在多个程中同时使用,可以发出信号给另外线程的槽,以及向“活在”另外线程中的对象邮寄事件。以上之所以能发生,是因为每个初程都被允许拥有它自己的事件循环。 QObject 重入 QObject是可重入的。它大多数非界面派生类,比如QTimer,QTcpSocket,QFtp,和QProcess,也都是可重入的,使得在多个线程中同时使用这些类成为可...
阅读全文
在视图上显示一个场景,分别都可以相应mousePressEvent; 但是如果,两个同时打开,是有视图可以相应,场景无法响应; 可以通过发消息解决:    void myGraphicsView::mousePressEvent(QMouseEvent *event) // { myQGraphicsScene * pScene = findChild<myQGraphicsScene*>("pmyQGraphicsScene"); QGraphicsSceneMouseEvent * pQGraphicsSceneMouseEvent = new QGraphicsSceneMouseEvent(QEv...
阅读全文
2015-01-18 06:33 工业·编程 ⁄ 共 4702字 暂无评论
Qt提供了一个绝妙的属性系统。跟那些由编译器提供的属性差不多。然而,作为一个独立于编译器和平台的库,Qt不依赖于非标准的编译特性,比如__property 或[property]。Qt可以在任何平台上的标准编译器下编译。Qt属性系统基于元数据对象系统--就是那个提供了对象内置信号和槽通讯机制的家伙。 声明属性需要什么 要声明一个属性,需在继承自QObject的类中使用Q_PROPERTY()宏。 Q_PROPERTY(type name    READ getFuncti...
阅读全文