2011年4月24日 星期日

2011年4月20日 星期三

Qt creator + Qt lib + 中文化

1.download Qt library 4.7.2 and MinGW
2.install Qt to C:\Qt\4.7.2
3.unzip mingw.zip to c:\Qt
4.download Qt creator 2.1
5.install Qt creator to C:\Qt\qtcreator-2.1.0
6.run Qt creator
7.tools->options
8.中文化

9.設置Qt

2011年3月27日 星期日

設定 NetBeans 原始程式檔以 UTF-8 編碼

開啟C:\Program Files\NetBeans 6.5.1\etc\netbeans.conf
在netbeans_default_options後面加入"-J-Dfile.encoding=UTF-8"

2011年3月26日 星期六

chrome+ramdisk

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command]
@="\"C:\\Documents and Settings\\asus\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --user-data-dir=\"R:\\Chrome\" -- \"%1\""

[HKEY_CLASSES_ROOT\ftp\shell\open\command]
@="\"C:\\Documents and Settings\\asus\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --user-data-dir=\"R:\\Chrome\" -- \"%1\""

[HKEY_CLASSES_ROOT\http\shell\open\command]
@="\"C:\\Documents and Settings\\asus\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --user-data-dir=\"R:\\Chrome\" -- \"%1\""

[HKEY_CLASSES_ROOT\https\shell\open\command]
@="\"C:\\Documents and Settings\\asus\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --user-data-dir=\"R:\\Chrome\" -- \"%1\""

2011年3月25日 星期五

NetBeans+Qt

  1. install NetBeans 6.9.1-cpp
  2. download Qt library 4.7.2 and MinGW
  3. install Qt
  4. unzip mingw.zip to c:\Qt
  5. open c:/Qt/4.7.2/mkspecs/default/qmake.conf
  6. replace $${DIR_SEPARATOR} as/
  7. run NetBeans
  8. Tool->Options->c/c++->add
  9. Browser->c:\Qt\mingw\bin->ok
  10. QMake Command->c:\Qt\4.7.2\bin\qmake.exe
  11. File->New Project->Sample->C/C++->Hello Qt World
  12. File->Project Properties->Run->Configuration->All Configuration
  13. Environment->Path:C:\Qt\4.7.2\bin
  14. now run it

2011年3月11日 星期五

load unicode file

#include <stdio.h>
#include <stdlib.h>
#include <locale.h> //function: setlocale
#include <ctype.h>  //define WEOF

/*
 * 
 */
int main(int argc, char** argv) {
    setlocale(LC_CTYPE, "");    //all printf is encode by unicode

    FILE *fp;
    fp = fopen("file.txt", "rb");//load UTF16-LE
    fseek(fp, 0, SEEK_SET);
    if (fp) {
        wchar_t c = L' ';
        while ((c = fgetwc(fp)) != WEOF)
        {
            printf("%lc\n", c);
        }
        fclose(fp);
    }
    return (EXIT_SUCCESS);
}

2011年3月8日 星期二

讓netbeans變成網頁編輯器

  1. tools->plugins->available plugins->checking "Embedded Browser UI - XUL Runner" and "Web Preview"->install
  2. tools->options->Web Browser->Embedded Mozilla Browser
  3. click preview

2011年2月28日 星期一

DevCon 裝置管理員 (command版)

最近因為要測試usb dongle
需要一直插拔
這時候就非常需要devcon
devcon remove "USB\VID_0403&PID_6001"
devcon rescan

2011年1月19日 星期三

QGraphicsItem的碰撞偵測

先利用collidingItems求出所有item發生碰撞的QGraphicsItem,
在利用qgraphicsitem_cast來過濾QGraphicsItem類別

2011年1月9日 星期日

邊框字

上星期突然有個想法,為何不能印出邊框字呢
於是我稍微修改了一下之前的點陣字
作一個自動將點陣字轉邊框字

完整程式在下面

2011年1月1日 星期六

bdf點陣字(二)

上一個方法,由於bdf檔是即時讀取,所以效能較差。
所以我利用bdf2c產生字型的font.h和font.c檔案
之後只要
#include "font.h"
extern struct bitmap_font font;
就可以使用

struct bitmap_font {
    unsigned char Width;        //字元最大寬度
    unsigned char Height;        //字元高度
    unsigned short Chars;        //總字元數
    const unsigned char *Widths;    //每個字元的寬度
    const unsigned short *Index;    //每個字元的索引
    const unsigned char *Bitmap;    //每個字元的資料

};
舉例
如果我要印出A字元(65)
就要找出65在font.Index的位置(pos)
然後資料就是在font.Bitmap的font.Width*font.Height/8*pos的位置
長度則是font.Width*font.Height/8

範例

bdf點陣字

bdf font是文字格式的點陣字型
我是將unifont(unicode bdf font),掃成我定義的bitmap格式

   1               1               1     1        1    1     1
    1        1     1               1     1        1   1      1
 1111111 1111      11111111111     1     1       1   11111  1
         1        1     1          1  1111111   1  1 1   1 1  1
  1   1  1        1     1          11    1  1   111  1   1 111
   1 1   1       1      1        1 1 1   1  1    1   11111  1
11111111 111111    1111111111    1 1     1  1   1  1 1   1 1  1
    1    1  1      1    1        1 1     1  1   1111 1   1 1111
    1    1  1      1    1       1  1 1111111111    1 11111    1
 1111111 1  1      1    1          1     1             1
    1    1  1   111111111111111    1    1 1     111111111111111
  1 1 1  1  1           1          1    1 1          1 1 1
 1  1  1 1  1           1          1   1   1        1  1  1
1   1   1   1           1          1   1   1      11   1   11
  1 1   1   1           1          1  1     1   11     1     11
   1   1    1           1          1 1       11        1