關于QT應用中幾個問題討論
QT一些應用使我們經(jīng)常碰到的一些問題,在這里簡單的羅列了一些內(nèi)容,僅供參考,先來看內(nèi)容。這篇文章屬于一個系列,主要是我收集于網(wǎng)絡的各種Qt方面技巧。
1、Qt串口應用程序小問題
用Qt 4.6寫個串口應用程序,串口的操作直接調(diào)用windows api來進行,卻發(fā)現(xiàn)一個問題,那就是如果我用creatfile來創(chuàng)建串口文件,則始終返回失敗,但我如用creatfileA來創(chuàng)建,則成功。
查了一下資料,原來這是由于字符編碼的問題引起的。QT系統(tǒng)用的是unicode編碼,因此,調(diào)用creatfile時,實際調(diào)用的是creatfileW這個支持unicode的函數(shù),但我用qt creator來編寫程序時,所寫程序的字符編碼卻是windows默認的gbk編碼,因此,導致失敗。解決方法是在qt creator中選擇程序字符編碼為utf-8,或者真接使用creatfileA這個函數(shù)。
2、主窗體圓角
- QPixmap pixmap(directoryOf("Images").absoluteFilePath("xiangximenu.png"));
- setMask(pixmap.mask()); // 可以不使用轉(zhuǎn)換的, 使用一張專門的bitmap圖片.
- setWindowFlags(Qt::Window|Qt::FramelessWindowHint);
只要讓你的窗體執(zhí)行了上面的代碼就是幾個角是圓角的,xiangximenu.png是一張圓角的圖片
制作圓角圖片大家可以訪問這個網(wǎng)站: http://www.roundpic.com
解釋:directory,只不過是為了解決平臺兼容性的一段代碼,所有的路徑都是針對可執(zhí)行文件的。
3、QML 官方教程
http://doc.qt.nokia.com/4.7-snapshot/qml-tutorial.html
4、Qt調(diào)用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