跳到主要內容

發表文章

目前顯示的是 2012的文章

Google+上面的Qt Taiwan社群

我在Google+上面建立的一個Qt Taiwan的社群。希望能夠聚集一些在台灣對Qt有在關注的人。有興趣的人,請到下面的連結加入社群。
http://plus.google.com/u/0/communities/113583235692012570234

狀態機的程式設計風格

本文是要說明狀態機程式的寫法,如果你曾經看過狀態機或是已經知道怎麼樣畫狀態機,但是卻不知道怎麼樣寫程式,那麼本文將會讓你知道怎麼做。
一個狀態機包含了四個元素 狀態(state)。轉移條件(transition condition),也有人用事件(event)或是訊息(message)來表示。輸出(output),也有人用工作(task)表示。輸入(input)。 其中輸入這項其實是非必要的。

Qt終於要逃離Nokia這條正在下沉的船了

http://www.digia.com/en/Home/Company/News/Digia-to-acquire-Qt-from-Nokia/
http://blog.qt.nokia.com/2012/08/09/investment-in-qt-planned-to-continue-digia/

今天看到了上面的兩個Link。是的!Qt終於要脫離Nokia了。Nokia目前的處境大家都知道整個是處於一個下沉的趨勢。是會在不久的將來撐不下去而賣掉,還是會因為聯合了Microsoft陣營而東山再起。我們不得而知。但是,對於Qt的愛好者來說,Qt在Nokia中已經註定沒有未來是很肯定的事情。

如何在開機的時候顯示Windows 8的進階啟動選項

有些時候你會需要能夠在開機的時候選擇不同的開機選項(Advanced Startup options)。Windows 7以前,你只要在開機的時候按F8按的夠快就可以了。但是Windows 8呢?
其實,Windows 8也是有這個選項的。但是,你會發現不管你怎麼按F8都叫不出他了。原因是Microsoft為了讓開機的時間更短,預設把這個查看F8的動作給關了。因此,我們要進行一些設定將這個選單給打開來。

將JSON格式所抓下來的遠端資料顯示在QML中

本文將說明如何在Python中產生一個可以供QML使用的data model。我們將利用Requests這個module協助我們取得遠端json格式的資源。我們將以台北市政府公開資料平台臺北公眾區免費無線上網熱點資料做為資料來源。將其內容顯示在我們的UI上。

將JSON格式所抓下來的遠端資料顯示在QML中

Nokia砍了Qt Team?

Leadership, Strategy and Qt By Mirko Boehm

一開始看到這篇文章有點嚇一跳(雖然大家都預期這遲早會發生的)。不過,後來又看了其他的網路上的討論,似乎不完全是這樣。Nokia是砍了德國Ulm這個地方的員工,裡面有大約100人是與Qt相關的。但是,Qt主要的開發者主要還是在Oslo,Brisbane及Berlin等地。

總之,我想最近Qt社群應該難免有點憂心吧!

將PySide中的string list當成data model傳給QML

本文將要說明如何將PySide中的string list當成data model,讓QML可以顯示它。首先,我們先看看Python的程式部分。

參加PyCon Taiwan 2012感想

參加PyCon Taiwan 2012回來了!說是參加,實際上就是去了半天而已。說實在的,什麼時候工作才會不要這麼忙,這樣我才可以好好的參加這些在週末舉辦的研討會。看到前面幾位講者的投影片內容都很豐富,頁數也不少。我實在為自己大概不到10頁的內容感到擔心,上台前,還一直在想如果只講了10分鐘就把投影片用完的話,要準備怎麼樣的話笑話來撐場面。後來,臨時在前一個人演講的時候,另外加了一頁上去,剛好湊滿10頁!

另外,這次演講,我採用了一個很大膽的策略。也就是我的內容都是用QtQuick+PySide寫出來的。並且在現場直接執行跟操作的。以演講來說,這是個風險蠻大的作法。這考驗著QtQuick+PySide的穩定性,還有我自己coding的品質。如果現場程式crash掉或是丟出什麼exception而結束掉,那就糗大啦!

之所以使用這樣大膽的策略,主要是考慮到當大家最後知道原來整場presenation就是一個demo時,應該會印象深刻吧!而且,如果最後太快講完了,我就拿source code出來講。哈哈!

還好,這次的時間掌控的比我想像中的好,時間剛剛好!可惜最後『假裝demo』的梗鋪陳的不夠有力,有點弱掉了。應該要假裝DEMO失敗來嚇嚇大家,這樣才會讓所有人印象更深刻吧!

無論如何,這次talk的表現還不算太難看。最令人高興的是,整個活動很成功!第一次看到這麼多Python同好聚在一起,好像空氣中都充滿了Python粒子,吸了一口就全身充滿了Python的力量 :)

這些舉辦活動的工作人員真是辛苦了。謝謝他們。



PS: 其實這次發現一個蠻令我驚訝的事情,我坐位置上的時候,放眼往去一般NB與Mac Book Air的比例居然接近 1 : 1。這還蠻有趣的,值得研究研究。

Python對字串使用wildcard的比對

對於檔案的搜尋,我們可以透過glob或是fnmatch的方式進行。但是如果只是比對字串,是不是也能用同樣的wildcard語法呢?其實,一切遠比你想的簡單。因為fnmatch有提供一個叫做translate的方法,可以把用來比對的wildcard字串,轉換成為regexp。去看看fnmatch module的文件,你就會看到一個說明如何使用的範例了。我將這個範例修改一下,使他變得更容易使用。

解決Python script無法在cp65001的console下執行的問題

你是否有這樣的經驗,明明沒問題的script,拿到某的電腦一直看到下面的訊息而無法執行。
LookupError: unknown encoding: cp65001 cp65001是什麼鬼!?其實,它就是UTF8阿!只是,Microsoft喜歡叫他cp65001(code page 65001號)。附帶一提,我們常用的Big5是cp950。想要知道你目前所使用的code page可以在Windows的console視窗執行

一個關於Qwt在VS2010環境的link error

之前透過MinGW32與Qwt來開發程式一直都相安無事。最近嘗試使用Visual Studio 2010,Qt及Qwt來開發另外一個程式,卻遇上了下面這樣的錯誤:

moc_xxx.obj:-1: error: LNK2001: unresolved external symbol "public: static struct QMetaObject const QwtPlot::staticMetaObject" (?staticMetaObject@QwtPlot@@2UQMetaObject@@B)

在Qt 4.7.4中遇到連結其他程式庫的怪問題(-enable-auto-import)

今天在編譯了Qwt 6.0.1給Qt 4.7.4使用,但是在連結到我自己的程式時遇到了奇怪的問題,首先是編譯時出現了一個奇怪的警告: :-1: warning: auto-importing has been activated without --enable-auto-import specified on the command line. 接著就是在執行的時候看連畫面都看不到就跑出下面這個包含錯誤代碼(0xC0000005)的對話框。