QT一些应用使我们经常碰到的一些问题,在这里简单的罗列了一些内容,仅供参考,先来看内容。这篇文章属于一个系列,主要是我收集于网络的各种Qt方面技巧。
1、Qt串口应用程序小问题
用Qt 4.6写个串口应用程序,串口的操作直接调用windows api来进行,却发现一个问题,那就是如果我用creatfile来创建串口文件,则始终返回失败,但我如用creatfileA来创建,则成功。
查了一下资料,原来这是由于字符编码的问题引起的。QT系统用的是unicode编码,因此,调用creatfile时,实际调用的是creatfileW这个支持unicode的函数,但我用qt creator来编写程序时,所写程序的字符编码却是windows默认的gbk编码,因此,导致失败。解决方法是在qt creator中选择程序字符编码为utf-8,或者真接使用creatfileA这个函数。
2、主窗体圆角
复制
QPixmap pixmap(directoryOf("Images").absoluteFilePath("xiangximenu.png")); setMask(pixmap.mask()); // 可以不使用转换的, 使用一张专门的bitmap图片. setWindowFlags(Qt::Window|Qt::FramelessWindowHint);
1.
2.
3.
只要让你的窗体执行了上面的代码就是几个角是圆角的,xiangximenu.png是一张圆角的图片
制作圆角图片大家可以访问这个网站: http://www.roundpic.com
解释:directory,只不过是为了解决平台兼容性的一段代码,所有的路径都是针对可执行文件的。
3、QML 官方教程
http://doc.qt.nokia.com/4.7-snapshot/qml-tutorial.html
4、Qt调用Win32 API
复制
#include <windows.h> ... #ifdef Q_WS_WIN //声明要使用windows API //HWND myhwnd=this->winId(); //获得窗口句柄 //::SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); //关闭显示器API //ExitWindowsEx(EWX_LOGOFF, 0); //注销用户API MessageBox(NULL,TEXT("This is windows window"),TEXT("HAHA YOYO"),MB_OK); //windows的messagebox, #endif
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.