2015-01-22 06:43
⁄ 工业·编程
⁄ 共 1038字
1.功能:用于对象之间的通信
2.传统的GUI如何实现对象之间通信的?
使用的是回调函数(指向某个函数的指针),相比之下信号与槽的机制较为灵活,但是这种灵活是以损失性能为前提的,只不过信号与槽机制的性能仍然较高。
3.什么对象才能发射信号?
只有定义过该信号的类或者其派生类才能够发射该信号。
4.信号与槽的工作方式:
当一个信号被发射的时候这些槽就会被执行,只有当所有的槽正确放回后,发射函数才会返回。当一个信号...
Qt阅读全文
2015-01-21 06:41
⁄ 工业·编程
⁄ 共 320字
1.只有继承自QObject的子类才可以使用Qt的属性系统
2.在类的定义文件中使用Q_PROPERTY()声明一个属性
3.属性相当于类的一种数据成员,这些数据成员有如下特点:必须有读函数,可选的部分有写函数,重置函数,以及DESIGNABLESCRIPTABLE STORED 特性,写函数是用于设置这个属性值,读函数是用于访问这个属性值,重置函数是用于恢复这个属性的默认值.
这三个函数可以是从父类中继承,但是在多继承体系中这三个函数必须继承自第一个父...
Qt阅读全文
2015-01-20 06:39
⁄ 工业·编程
⁄ 共 2450字
QThread从QObject派生。它发出信号来表明线程开始了或结束了。并且也提供了几个槽。
更有趣的是,QObject可以在多个程中同时使用,可以发出信号给另外线程的槽,以及向“活在”另外线程中的对象邮寄事件。以上之所以能发生,是因为每个初程都被允许拥有它自己的事件循环。
QObject 重入
QObject是可重入的。它大多数非界面派生类,比如QTimer,QTcpSocket,QFtp,和QProcess,也都是可重入的,使得在多个线程中同时使用这些类成为可...
Qt, 多线程编程阅读全文
2015-01-19 23:16
⁄ 工业·编程
⁄ 共 1054字
在视图上显示一个场景,分别都可以相应mousePressEvent;
但是如果,两个同时打开,是有视图可以相应,场景无法响应;
可以通过发消息解决:
void myGraphicsView::mousePressEvent(QMouseEvent *event) // { myQGraphicsScene * pScene = findChild<myQGraphicsScene*>("pmyQGraphicsScene"); QGraphicsSceneMouseEvent * pQGraphicsSceneMouseEvent = new QGraphicsSceneMouseEvent(QEv...
Qt阅读全文
2015-01-18 06:33
⁄ 工业·编程
⁄ 共 4702字
Qt提供了一个绝妙的属性系统。跟那些由编译器提供的属性差不多。然而,作为一个独立于编译器和平台的库,Qt不依赖于非标准的编译特性,比如__property 或[property]。Qt可以在任何平台上的标准编译器下编译。Qt属性系统基于元数据对象系统--就是那个提供了对象内置信号和槽通讯机制的家伙。
声明属性需要什么
要声明一个属性,需在继承自QObject的类中使用Q_PROPERTY()宏。
Q_PROPERTY(type name
READ getFuncti...
Qt阅读全文
2015-01-17 23:13
⁄ 工业·编程
⁄ 共 762字
以前我一直以为:在父widget上摆一个子widget后,当click子widget时:只会进入到子widget的相关事件处理函数中,比如进入到mousePressEvent()中, 而不会进入到父widget的对应事件处理函数中。毕竟:click的是子widget,其遮挡住了父widget,从而父widget接收不到这个事件。然而事实真的是这个样子吗?
我做了一个测试: 在一个QWidget上建了一个QLabel。而后实现父QWidget的mousePressEvent(), 然后...
Qt, 消息机制阅读全文
2015-01-16 23:03
⁄ 工业·编程
⁄ 共 2711字
QGraphicsView提供一个显示QGraphicsScene内容的窗口,该窗口可以滚动,可以在构造时候把场景对象作为参数,或者之后使用setScene()来设置view的场景,然后调用了show()函数后,view就可以默认的在场景的中心,显示item,例如
QGraphicsScene scene;
scene.addText("Hello, world!");
QGraphicsView view(&scene);
view.show();
可以使用鼓动调来调节查看场景的位置,或者调用centerOn(),视图会把传进去的点参数...
Qt阅读全文
2015-01-15 22:59
⁄ 工业·编程
⁄ 共 6574字
QGraphicsView用来显示一个滚动视图区的QGraphicsScene内容。QGraphicsScene提供了QGraphicsItem的容器功能。通常与QGraphicsView一起使用来描述可视化图形项目。
QGraphicsScene提供了一个视图的场景,通过在这样一个场景之上加入不同的QGraphicsItem来构建视图。而QGraphicsView则提供了一个widget来显示QGraphicsScene的内容。所以要想成功构建一个视图,这三个元素缺一不可。
以下是一个QGraphicsView的例子,实现滑动的窗...
Qt阅读全文
2015-01-14 23:21
⁄ 工业·编程
⁄ 共 4528字
陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换肤文章,绝大部分的是一些简单的按钮文本样式,要做到整体换肤程度几乎不行,QTCN论坛里的奋斗的孩子写了个模仿360安全卫士系列,让我既惊喜有遗憾,惊喜的是能够用QT实现一个这么完整的360安全卫士界面,...
Qt阅读全文
2015-01-13 23:17
⁄ 工业·编程
⁄ 共 1008字
Qt可以使用多种技术来创建用户界面。我们也可以根据需要混合使用不同的技术,在一些特定的场景下一些技术就会比其他的技术更适合,所有方法各有所长。QrCreator就是混合使用多种技术的一个示例。实际上,它使用了传统的QtWidgets,例如菜单和对话框等;QtQuick则作为欢迎界面,QtWebKit则用于呈现Qt相关的文档。下面的内容将简要介绍这几种用于创建用户界面的技术,最后给出了一个对比表便于选...
Qt阅读全文