10. GUI 编码阶段
遇到的问题:
(1)线程间同步
计时器需要新建线程,才能避免主界面函数停止响应。但是在跳到下一道题时候,在新建线程的同时要停止旧的计时器线程。所以设置了一个用来同步的变量,每生成一个线程则+1,如果旧线程检测到数目>1,则自动销毁,保证了一次只有一个线程在更新倒计时标签。
(2)超时的处理
用的是Qt的信号和槽机制,计时器线程运行到函数尾部时,emit一个信号,主界面的类接收这个信号,并调用槽函数,进行相应
(3)中文编码的问题
Qt库对中文的支持看来不好。。文件编码变来变去的。后来在字符串前面加u8,能解决一部分问题。至于读中文文件乱码的问题(读取历史记录),后来用的QString::fromLocal8Bit()来解决的
(4)Qt不提供静态库。。只能用动态链接库。。关键是动态链接库我也没弄全,总是少dll文件。后来找到的别人编译好的静态库,然后用静态库编译的程序,终于不用和一堆dll一块打包了。。