现在位置: 首页 > 自动控制 > 工业·编程 > 文章
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...
阅读全文
2015-01-17 23:13 工业·编程 ⁄ 共 762字 评论 1 条
以前我一直以为:在父widget上摆一个子widget后,当click子widget时:只会进入到子widget的相关事件处理函数中,比如进入到mousePressEvent()中, 而不会进入到父widget的对应事件处理函数中。毕竟:click的是子widget,其遮挡住了父widget,从而父widget接收不到这个事件。然而事实真的是这个样子吗?      我做了一个测试: 在一个QWidget上建了一个QLabel。而后实现父QWidget的mousePressEvent(), 然后...
阅读全文
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(),视图会把传进去的点参数...
阅读全文
QGraphicsView用来显示一个滚动视图区的QGraphicsScene内容。QGraphicsScene提供了QGraphicsItem的容器功能。通常与QGraphicsView一起使用来描述可视化图形项目。 QGraphicsScene提供了一个视图的场景,通过在这样一个场景之上加入不同的QGraphicsItem来构建视图。而QGraphicsView则提供了一个widget来显示QGraphicsScene的内容。所以要想成功构建一个视图,这三个元素缺一不可。 以下是一个QGraphicsView的例子,实现滑动的窗...
阅读全文
2015-01-14 23:21 工业·编程 ⁄ 共 4528字 暂无评论
    陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换肤文章,绝大部分的是一些简单的按钮文本样式,要做到整体换肤程度几乎不行,QTCN论坛里的奋斗的孩子写了个模仿360安全卫士系列,让我既惊喜有遗憾,惊喜的是能够用QT实现一个这么完整的360安全卫士界面,...
阅读全文
2015-01-13 23:17 工业·编程 ⁄ 共 1008字 暂无评论
      Qt可以使用多种技术来创建用户界面。我们也可以根据需要混合使用不同的技术,在一些特定的场景下一些技术就会比其他的技术更适合,所有方法各有所长。QrCreator就是混合使用多种技术的一个示例。实际上,它使用了传统的QtWidgets,例如菜单和对话框等;QtQuick则作为欢迎界面,QtWebKit则用于呈现Qt相关的文档。下面的内容将简要介绍这几种用于创建用户界面的技术,最后给出了一个对比表便于选...
阅读全文