2013年12月30日 星期一

PyQt4 教學3 Regexp 測試器

 
Step 1.
先建立基本 視窗 
# -*- coding: UTF8 -*-
import os, sys, re
from PyQt4.QtGui import *
from PyQt4.QtCore import *

class RegexTest(QWidget):
    def __init__(self, parent=None):
        super(self.__class__, self).__init__(parent)
        self.setWindowTitle("RegexExpress Test")

        #self.setupUI()
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    main = RegexTest()
    main.show()
    sys.exit(app.exec_())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2013年12月27日 星期五

python 小技巧 try except 捕捉錯誤時,列印錯誤行數

import sys

sys.exc_info() 返回一個tuple,能取得 (type, value, traceback)
 
例:
>>> sys.exc_info()
(, Empty(), ) 
 
我取出 traceback 出來用 
traceback = sys.exc_info()[2]

而 traceback.tb_lineno 能列印錯誤行數
 
所以我將程式改寫並包裝成一個函數來使用

2013年12月2日 星期一

PyQt4 教學3 QThread 多線程

多線程python 已有 threading, pyqt 又有 QThread, 一開始都容易有疑問,二者有何不同?應該那一個比較對,我是覺得二者皆可用,網上曾看過有人說,應儘量用 python 本身的 threading, QThread 是原本針對 C++而寫。

任務量較少的情況,我會直接用 threading, 任務量大且需向其它gui 物件傳遞訊息的情況,我會用QThread

這篇是寫PyQt,所以這邊我也只寫 QThread部份

會想使用QThread,我所遇到的情況,是向網頁,抓取資料,又遇網路過慢,延遲過久造成Gui介面等待過久,介面會卡卡、頓頓的。

首先先寫介面,然後點擊 startBtn 可以測試 無線程情況下,圖形介面是不是卡卡的