随笔分类 -  Qt

Qt真的很好用!
摘要:我们发现PyQt做的Python版的PyQt是如此好用,如果想把自己的C++库包装成Python模块该如何实现呢? 这里介绍下用SIP包装C++库时值得参考的功能实现: 需要Python模块中实现C++的多态指针类型自动转型为实际类型: 例如:AbstractItem *getItem(); // 这里返回值可能是任何一个子类对象指针,但是在SIP包装后,始终返回AbstractItem对象,... 阅读全文
posted @ 2014-01-27 10:44 紫红的泪 阅读(2115) 评论(0) 推荐(0)
摘要:在链接Qt的库,比如QtGui4.lib,我这里是在链接QtSolutions_PropertyBrowser-head.lib的时候出现的链接错误。大概是说一个“XXXX::staticMetaObject”的函数找不到定义。解决办法是,在include该Qt库的头文件时定义“__declspec(dllimport)”,对于QtSolutions_PropertyBrowser-h... 阅读全文
posted @ 2013-06-20 15:44 紫红的泪 阅读(1741) 评论(0) 推荐(0)
摘要:这个情况出现在QtCreator的2.5版以上,是由于新版QtCreator至少需要7.2 IIRC版的GDB。可以到:http://builds.qt-project.org/job/gdb-windows/下载好使的GDB。 阅读全文
posted @ 2012-10-14 19:25 紫红的泪 阅读(3361) 评论(0) 推荐(0)
摘要:主要是在Qt中集成Python解释器用,对于没有提供.a文件的Python版本,若想集成进MingW编译的Qt中需要:pexports c:\Windows\System32\python27.dll > python27.def dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a 阅读全文
posted @ 2011-08-24 15:37 紫红的泪 阅读(1253) 评论(0) 推荐(0)
摘要:今天做一个成绩管理系统的并发引擎,用Qt做的,仿照QtConcurrent搞了个模板基类。这里为了隐藏细节,隔离变化,把并发的东西全部包含在模板基类中。子类只需注册需要并发执行的入口函数即可在单独线程中执行。最终目标是,继承的业务逻辑类外部调用时有两个接口可选,调用syncRun同步执行;调用由引擎自动生成的asyncRun就异步执行。最终自动生成asyncRun的模板基类没能实现,主要原因是m... 阅读全文
posted @ 2011-03-08 00:49 紫红的泪 阅读(6583) 评论(25) 推荐(3)
摘要:一直用Qt Creator开发Qt程序,Nokia的Qt Creator实在太慢了,启动慢,编译速度也是超级慢。昨天,终于它慢的让我无法忍受了,我决定抛开手上的一切工作,深入挖掘Qt Creator启动慢的原因。首先,怀疑是给力的Mcafee企业版卡住程序了。试试把Mcafee的一切监控都关闭,没效果!然后怀疑系统进程太多了,卸载掉SONY送的一堆无用程序,没效果!继续怀疑某些进程与Qt Cre... 阅读全文
posted @ 2011-03-03 22:20 紫红的泪 阅读(6145) 评论(9) 推荐(4)
摘要:      需要使Qt程序单例运行,最典型的实现应当是使用共享内存。网上搜一下有无官方实现方法,却无意间跑到了CuteQt的一篇文章中。共享内存(QSharedMemory)实现的单程序运行,当运行环境是UNIX时,并且程序不幸崩溃,会导致共享内存无法释放,从而无法重新运行程序! Unix: QSharedMemory "owns&quo... 阅读全文
posted @ 2010-08-09 11:43 紫红的泪 阅读(2943) 评论(0) 推荐(0)
摘要:      一直在尝试从单元格的行列索引(QModelIndex)获取其单元格的全局坐标(Global Pos)的方法,以期待在指定单元格附近弹出帮助信息。由View中的columnViewportPosition()和rowViewportPosition()能够把行列值转换为坐标值,但继续用View的mapToGlobal映射坐标到全局坐标却出... 阅读全文
posted @ 2010-08-08 12:31 紫红的泪 阅读(3808) 评论(0) 推荐(0)
摘要:      单例模式分为“饥汉”和“饿汉”两种版本,也正是线程安全问题使得原本简单的单例模式变得复杂。由于单例模式很常用,Boost库中有强大的泛型单例实现,我也利用Qt的原子指针QAtomicPointer来实现Qt中的单例模式:          双重锁检测在C++... 阅读全文
posted @ 2010-07-14 17:21 紫红的泪 阅读(23258) 评论(8) 推荐(0)
摘要:      QList算是最常用的集合了,今儿偶然间需要修改QList中的值,结果郁闷了。QList中提供了replace函数来替换item,但不是修改。而at()、value()操作均返回的是const的item引用,无法修改。最后才发现,使用下标([index])才可以获得可修改的item的引用!为啥不给at()或者value()设计可修改的重... 阅读全文
posted @ 2010-07-14 16:56 紫红的泪 阅读(5245) 评论(1) 推荐(1)
摘要:      通过Delegate创建QCheckBox来实现的Check列,只有在该列进入编辑模式时才能够Check/Uncheck。这显然不是我们想要的,网上翻来翻去,在一个国外论坛中看到了无需Delegate的实现方法,只需重写Model即可: 阅读全文
posted @ 2010-07-13 12:51 紫红的泪 阅读(4645) 评论(1) 推荐(0)
摘要:      找到qt安装目录下的mkspecs文件夹,在里面找到你使用的对应版本编译器,打开qmake.conf。稍等: /MD:动态链接多线程库(msvcrt.lib)。使用该选项时,需要用/NODEFAULTLIB选项来忽略掉libc.lib、 libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib库,否则会... 阅读全文
posted @ 2010-05-08 23:53 紫红的泪 阅读(10504) 评论(1) 推荐(0)
摘要:      昨天调试项目时,突然发现如下消息: QObject::connect: Cannot queue arguments of type 'ERROR_LEVEL' (Make sure 'ERROR_LEVEL' is registered using qRegisterMetaType().) 其中ERROR_LEVEL只是我定义的枚举... 阅读全文
posted @ 2010-04-30 15:54 紫红的泪 阅读(5963) 评论(0) 推荐(1)
摘要:      继removeDatabase()警告、C++ 传指针还是传引用的困惑、Qt槽可否使用默认参数、诡异的ESC关闭事件以及Qt元类型注册门等一系列波折后,我的corpus creator终于释出了第一个release版!上来就进行各种界面测试,然后来了个8000语料库创建。在贴log前,我先磨叽会儿。corpus creator使用的是经... 阅读全文
posted @ 2010-04-30 02:28 紫红的泪 阅读(361) 评论(0) 推荐(0)
摘要:      事情是这样的:今天调试窗体,突然发现按ESC键居然跳过closeEvent()关闭了对话框!我的关闭判断都在closeEvent()里,这直接导致非正常关闭了正在进行的工作。先重建下场景: 调用处: 典型的模态对话框,因为用了exec()。Corpus对话框类中覆盖了closeEvent(),其中父类的closeEvent()为虚函... 阅读全文
posted @ 2010-04-29 23:53 紫红的泪 阅读(9666) 评论(4) 推荐(2)
摘要:引用自:http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/ 的一篇经典文章,是关于Qt的信号和槽的分析的。看年份是2001年,有年头了。 其中: 7.信号与槽不能有缺省参数。 既然signal->slot绑定是发生在运行时刻,那么,从概念上讲使用缺省参数是困难的。下面的用法是不合理的: 是就目前来说是... 阅读全文
posted @ 2010-04-29 16:05 紫红的泪 阅读(1940) 评论(0) 推荐(1)
摘要:      用C++做了一段时间毕业设计了,突然有一天被困在传指针还是传引用的问题上。后来翻看了《C++ 编程规范》,并结合了项目实际情况,总结出下面结论: 传指针 如果函数保存了地址。例:复制地址给类成员变量、把地址保存在函数内静态局部变量中。 如果参数是可以选的。例:允许传入NULL值。 传引用 如果函数没有保存地址。例:仅修改了参数引用对象... 阅读全文
posted @ 2010-04-29 14:03 紫红的泪 阅读(2501) 评论(2) 推荐(0)
摘要:Background 很久很久很久以前,CPU忠厚老实,一条一条指令的执行我们给它的程序,规规矩矩的进行计算和内存的存取。 很久很久以前, CPU学会了Out-Of-Order,CPU有了Cache,但一切都工作的很好,就像很久很久很久以前一样,而且工作效率得到了很大的提高。 很久以前,我们需要多个CPU一起工作,于是出现了传说中的SMP系统,每个CPU都有独立的Cache,都会乱序执行,会打乱内... 阅读全文
posted @ 2010-04-28 00:59 紫红的泪 阅读(4879) 评论(0) 推荐(1)
摘要:如果你用过Qt的QSqlDatabase的话,多半会对下面的警告信息感兴趣: 意思是说,还有某查询引用默认数据库连接"qt_sql_default_connection"。如果忽略该警告,Qt官方文档里也写了,可能会出现内存泄漏:还是不出现这个警告的好。怎么把它弄没了呢?我把一切外围的对象都排除了:仅建立一个连接,打开它,然后关闭连接,调用removeDatabase()。居... 阅读全文
posted @ 2010-04-27 21:54 紫红的泪 阅读(23105) 评论(3) 推荐(0)
摘要:尝试edit半天,最后在文档中发现这句话。哎,"edit: editing failed"问题终于解决了! 阅读全文
posted @ 2010-04-25 16:26 紫红的泪 阅读(758) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示