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阅读全文
2015-01-10 06:17
⁄ 工业·编程
⁄ 共 538字
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextcodec类提供了文本编码的转换功能。QTextCodec类中的静态函数setCodecForTr(),用来设置QObject::tr()函数所要使用的字符集,tr()函数可以使用指定的字符集来对文本编码进行转换。这里使用了QTextCodec::codecForLocale(),它返回了系统指定的字符集。当然也可以自己指定字符集,比如使用“GB18030”,则可以写成:
QTextCodec::setCodecForTr(QTextCodec::codec...
Qt阅读全文
2015-01-08 20:51
⁄ 工业·编程
⁄ 共 1255字
QML作为Qt新的界面编写方式,具有强大的灵活性,事实上这就是Direct UI的概念,不过由于推出的时间比较短,同时本身定义上的问题,许多原来Qt中的部件在QML中是没有的。
对于有QML开发的需求的同学来说,每个部件都自己来写,是相当费时费力,所幸,目前已经有一定数量的QML开源组件(componet)了。在些QML组件里,不仅提供了一系列基础的部件,甚至还有非常强力的QML自定义元素,使用这些,将缩短项目的开发产期,为开发者带来...
Qt, Qt_Quick阅读全文
2015-01-07 07:45
⁄ 工业·编程
⁄ 共 400字
Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉。完成这一操作的就是 moc。
moc 全称是 Meta-Object Compiler,也就是“元对象编译器”。Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件。这个源文件中包含了 Q_OBJECT 宏的实现代码。这个新的文件名字将会是原文件名前面加上 moc_ 构成。这个新的文件...
Qt阅读全文
2015-01-06 22:03
⁄ 工业·编程
⁄ 共 5437字
环境:
主机:WIN7
开发环境:Qt5 3.1.2
说明:
在tcp上传输xml消息.
协议格式如下:
2字节标识(0xc55c,网络序)+2字节预留 +4字节报文内容长度(网络序) + 4字节命令字(网络序)+报文内容
部分协议:
命令字: 请求值班信息:GET_DUTY_INFO 请求报文:
<?xml version="1.0" encoding="UTF-8"?>
<request >
<identifier>客户端的唯一标识符</identifier>
</request>
回复报文:
&l...
Qt, xml, 网络编程阅读全文
2015-01-05 14:26
⁄ 工业·编程
⁄ 共 1696字
Qt如何调用VC++生成的动态链接库?假设当前有VC++编译器生成的动态库文件testdll.h,testdll.lib和testdll.dll。
testdll.h文件源码如下:
#ifdef TESTDLL_EXPORTS
#define TESTDLL_API __declspec(dllexport)
#else
#define TESTDLL_API __declspec(dllimport)
#endif
// 此类是从 testdll.dll 导出的
class TESTDLL_API Ctestdll {
public:
Ctestdll(void);
public:
int Add(int a, int b) {return a+b;}
int Sub(int a, int b...
dll, Qt阅读全文