標籤:create 訊號和槽 rbac cap ati char s 介面 char gis
Qt for windows訊息迴圈、libqxt分析和wince快速鍵處理
利用Qt做windows圖形介面開發和MFC相比,個人感覺還是比較簡單好用的:首先利用Designer工具搞個ui檔案;然後在程式中寫幾個訊號和槽;然後載入ui檔案;最後顯示介面就搞定了。
在介面開發中,快速鍵處理肯定是必不可少的。現在使用的是開源的第三方處理類:libqxt。它提供跨平台的解決方案:win和x11。使用起來也很方便。使用方便並不是萬事大吉,我們要有求索精神:“知其然知其所以然”。好了廢話不多說開始分析。
Windows下程式設計總是要遵循它自身的機制的,在《windows程式設計》書中給出了詳細的說明。下面給出經典的windows程式樣本(hello Windows):
#include
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ;
MSG msg ;
WNDCLASwndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuNam = NULL ;
wndclass.lpszClassName= szAppName ;
if (!RegisterClass (&wndclass)) {
MessageBox ( NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow( szAppName, // window class name
TEXT ("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT,// initial x position
CW_USEDEFAULT,// initial y position
CW_USEDEFAULT,// initial x size
CW_USEDEFAULT,// initial y size
http://www.360docs.net/doc/info-dd3b0c3faf45b307e8719777.html
https://wenku.baidu.com/view/dd3b0c3faf45b307e8719777.html
Qt for windows訊息迴圈、libqxt分析和wince快速鍵處理