2011年9月29日 星期四

Qt新增圖片 找不到指定的路徑 qrc


在開發Qt 時常會需要增加一些圖片
但增加到qrc中的時候常常會出現以下錯誤

1>Rcc'ing autosend.qrc...
1>系統找不到指定的路徑。
1>Project : error PRJ0019: A tool returned an error code from "Rcc'ing autosend.qrc..."
1>Project : warning PRJ0018 : The following environment variables were not found:
1>$(QTDIR)


程式也沒更改就只加了圖片上去...
別緊張!!!
我是用windows & vs2008開發, 當碰到這種情況時
只要 點 Qt / Convert project to Qt Add-in project
再compile 一次 Error就消失了~
就可以再改回QMake 模式繼續寫...

2011年7月29日 星期五

mobile Qt 環境

Qt要在Mobile or WinCE上執行就需要先建構一個屬於他的環境

用那個環境去編譯,在Target上才能正常的執行!!!

建構環境:

1.下載一個qt-everywhere-opensource-src-4.7.2     (未編譯的環境)

2.記得安裝你要開發的SDK

3.將剛剛下載的qt-everywhere...放到C:\Qt\  底下 並修改資料夾名稱 (方便開發  如: C:\Qt\CE472 )

4.環境變數Path 增加 C:\Qt\CE472\bin    (我的電腦->內容->環境變數)

5.使用VS2008 Command Prompt    路徑輸入 cd C:\Qt\CE472\

6. > configure -platform win32-msvc2008 -xplatform wince60standard-armv4i-msvc2008
wince6.0 沒有 for msvc2008的  就利用2005的複製過來
修改qmake.conf 
include(../common/wince/qmake.conf)
QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
QMAKE_COMPILER_DEFINES += _MSC_VER=1500       (增加兩行)

CE_SDK = CE12345            (如果Target的SDK是特殊的)

7.設置配置檔
set INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\include;C:\Program Files\Windows CE Tools\wce600\CE12345\Include\Armv4i
set LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\lib\armv4i;C:\Program Files\Windows CE Tools\wce600\CE12345\Lib\ARMV4I
set PATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm;%PATH%

或自動配置setcepaths wince60standard-armv4i-msvc2008    

8.> nmake      (成功的話需要時間大概一個多小時)

沒有Error就可以在VS2008裡設定Qt Option裡選取編譯好的環境

Qt in VS2008

Qt 主要就是跨平台的方便性

Linux fedora內建就有Qt了

那Windows 要怎麼才能使用Qt !?

1.安裝VS2008        (廢話)


2.安裝Qt ,官網上可下載VS2008用的  (如: qt-win-opensource-4.7.2-vs2008 )

3.安裝qt-vs-addin-1.1.8 (將Qt嵌入VS2008)

基本上這樣就可以在Windows 上開發Qt... (版本隨時都在更新上面參考用)




2011年7月28日 星期四

錯誤 101 (net::ERR_CONNECTION_RESET): 連線已重設。

用iGoogle有時候會出現 "錯誤 101 (net::ERR_CONNECTION_RESET): 連線已重設。"

不知道為什麼~ 就只好按照他建議reload ...

可是效果不佳!常常還是一樣看不到

搜尋一下發現解決辦法!!!

修改hosts文件,在C:\Windows\System32\Drivers\Etc\hosts 加上:
74.125.39.99 clients2.google.com
74.125.39.99 chrome.google.com
74.125.39.99 tools.google.com

2011年7月27日 星期三

Qt tcp include

用VS2008 編譯Qt 跟 Linux上有許多的不同

應該說比較方便吧...可是我還不熟悉   囧...

#include <QtNetwork/QTcpServer> 之後還是出現error code

error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QTcpServer::~QTcpServer(void)" (__imp_??1QTcpServer@@UAE@XZ)      .....
 fatal error LNK1120: 2 unresolved externals

爬文後發現一般要運用到網路則需要再 .pro檔

增加 QT += network

但VS2008裡沒有產生.pro檔  那... 應該在哪邊加呢!?

也是很簡單= = 就在Qt Project Settings 裡打勾就解決了...


2011年7月26日 星期二

將圖片匯入至Qt執行檔

這個問題用了Qt 兩年可是我一直沒有去嘗試

爬文了一下~沒想到這麼簡單

Qt 資源系統(Resource System),資料來源 .qrc 檔

在VS2008就直接點擊Resource Files裡的.qrc

add 欲加入的圖檔

code:

QPixmap pix(":/AutoSend/sync32.png");

簡單一句就是 .qrc裡存放圖片的路徑 加上  :



參考資料:
http://caterpillar.onlyfun.net/Gossip/Qt4Gossip/QtResourceSystem.html

2011年7月18日 星期一

'wcscpy': This function or variable may be unsafe.

有一個 TCHAR 字串 Path
要將他複製給 Name 想到就是用_tcscpy 去做複製

TCHAR*  Path = "C:\"
TCHAR *Name = new TCHAR[256];

_tcscpy(Name, Path);

可是這樣編譯會產生
warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.

warning上就說明了解決的辦法
新增一行
#define _CRT_SECURE_NO_DEPRECATE 1
就可以忽略warning