QT
windless0530
这个作者很懒,什么都没留下…
展开
-
QT4.7.1 + VS2008 + QT Designer开发流程心得
<br />例:新建一个项目,用QT Designer设计界面,然后在VS中编译。<br /> <br />过程:<br />1. 用QT Designer进行设计,另存成ui文件(如Demo.ui)。<br />2. 在project目录下运行“uic Demo.ui -o ui_Demo.h”生成ui_Demo.h文件。<br />3. 继续编写代码,自定义对话框类继承自QDialog和ui_Demo.h中定义的类。<br />4. 保存所有文件,在project目录下运行“qmake -project原创 2011-01-03 17:35:00 · 3049 阅读 · 0 评论 -
QT对话框的几个windows flag
<br />要实现对话框不在任务栏显示,而且无规则边框(用半透明png在paintevent里画),需要把属性设为:<br /> <br />Qt::Popup | Qt::Dialog | Qt::FramelessWindowHint<br /> <br />不过发现这样对话框show()的时候不激活。<br /> <br />解决方式是在showEvent里调用this->activateWindow()<br /> <br />特此备忘。<br /> <br />原创 2011-06-02 11:31:00 · 1881 阅读 · 0 评论 -
VS2008集成QT,自动moc设置
实现:头文件定义的QObject子类声明Q_OBJECT后自动生成moc文件。编译时自动moc生成moc文件,并加入project。方法:手动编辑vcproj文件,在末尾加上(以QT4.8为例):(P.S. 当然,前提是装了qt vs add-in并且配置了QT路径和版本) // ... // ... // ... <Global N原创 2012-02-27 17:35:02 · 3954 阅读 · 1 评论 -
Q_DECLARE_METATYPE 的一个坑(有时候会现诡异编译错误)
因为 Q_DECLARE_METATYPE 是一个宏。借用一句话:“宏是万恶之源”。什么恶呢?就是,如果它的参数当中有逗号",",会被当成参数分隔符。所以,当你试图这么写:Q_DECLARE_METATYPE(QMap);你就会发现编译不过,并且抓狂了。解决方法嘛,当然很简单:参照Q_DECLARE_METATYPE的宏定义,自己把它展开,编译器就不会再犯傻了。原创 2012-03-02 15:47:31 · 7508 阅读 · 2 评论 -
QDialog子控件禁止构造时parent为NULL
否则如果QDialog::exec(),则直到对话框退出主线程都会处于QDialog::exec()内部的消息循环之内,这个消息循环位于qApp消自习循环之上。而构造时parent为NUILL的widget,其父控件为桌面,因此当windows消息(不管是鼠标、键盘、还是别的)发给它的时候,只有在qApp消息循环里才能处理。换句话说,就是在模态对话框运行期间,根本处理不了……原创 2012-06-14 18:26:19 · 1494 阅读 · 0 评论