Android with root Git for version control Lircd with Raspberry Pi for IR receiver and sender Tips for Windows Depolying your own password management tool -- KeeWeb Depoly your flask app into Heroku Fix shit IE code manually ISBN to Book Category by Scraping DangDang A Generic Makefile for C/C++ Program Configure Raspberry pi Remove watermark with PyPDF2 tips for docker Anaconda+TensorFlow+CUDA Snippets Configure Remote Mathematica Kernel Build your own ngrok server Access Array SSL VPN 使用Rstudio制作html5幻灯片 tips for Mac OS X system Tips for ipython notebook 配置Ubuntu server + Openbox (Obuntu) tips for Vimperator tips for Vim 安装CUDA My First Jekyll Blog rsync常见选项 在Linux中读取Ipod touch的文件 tip for texmacs 在VPS上建站的一些tip Gnuplot绘图札记 Samba系统和autofs自动挂载 Linux中alsamixer声卡无法录音 搭建自己的RSS订阅器——Tiny Tiny RSS Grub2引导安装Ubuntu awk tips 将Ubuntu系统装入U盘 The Great Rtorrent 编译GCC 再这样剁手!!!该死的libgd 使用ulimit进行资源限制 使用SSH代理上IPV6 使用RCurl抓取网页数据 修复Ubuntu Grub记 openbox中的文件关联 在Ubuntu 12.04下编译qtiplot 处理BCM4312网卡驱动纪实 配置我的Ubuntu Server记 Cygwin杂记 Linux 使普通用户具有以超级权限执行脚本 让firefox自定义地处理文件类型 WordPress优秀主题及插件 在phpcloud上搭建wordpress UBUNTU下用pptpd做VPN server ubuntu升级内核过后的一些问题 安装telnet服务 kubuntu札记 64位kubuntu札记 统计软件R Virtualbox stardict星际译王 Ubuntu重装windows系统后的grub引导修复 SSH服务及花生壳域名解析 采用cbp2make工具由code::blocks工程创建makefile文件 UBUNTU 札记

我的第一个QT程序

2014年04月17日

以前一直写命令行程序,这次接到一个任务要写一个简单的GUI程序。虽然以前写过matlab的界面,但是那玩意儿不能独立出来单独跑(?)。这次的客户用的是Windows XP,作为一名MS黑,咋好意思用MFC那货,粗粗了解了一下就觉得那玩意儿好复杂。QT必须是首选啊,于是乎,花两天时间学着写个QT试试。

好吧,实际上就一个页面,并且我还是用的QT designer拖的控件。布局完了写信号槽就行了。在Windows上编译的时候就麻烦了,用Mingw+QT5编译完全没有问题,用VS2010+QT creator编译的时候就麻烦了,各种问题,完全不知道为啥。下面记一下,

  1. 编译之前先清空项目,然后qmake,再生成项目。或者手动生成moc文件后包含到项目中。

    error LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __thiscall Widget::metaObject(void)const “

  2. 将源代码保存为Unicode编码。两种方法,用VS打开有问题的文件,File->Advanced save options->选择UNICODE codepage 1200后保存;用vim转码argdo set fileencoding=ucs-2le |update后保存。

    C4819: 该文件包含不能在当前代码页(936)中表示的字符。

  3. 中文乱码,用宏包装常量字符串QStringLiteral("这是中文")

  4. 运行时找不到dll,复制QT安装目录下的dll文件(如PATH:\to\QT\Qt5.2.1\5.2.1\msvc2010\bin)到可执行文件目录或者添加dll文件目录到环境变量。有一个文件libEGL.dll缺失会导致错误

    This application failed to start because it could not find or load the Qt platform plugin “windows”