PyQt編程入門之一

PyQt是一個GUI庫,是將Python和Qt結合在一起的產物。而Qt是目前比較成功和強大的GUI庫。你可以通過訪問www.riverbankcomputing.co.uk瞭解更多關於PyQt的消息,目前主要的開發人員是 Phil Thompson.PyQt通過一組python模塊來實現的,其中包括了超過300個類,盡6000個函數和方法。非常好的是,這個庫是平臺獨立的,可以運行於當前大多操作系統中,包括Unix,Window和Mac。PyQt使用的是雙許可證,開發人員可以在GPL和商業許可之間進行選擇。過去,GPL僅適用於 Unix,從PyQt4開始,GPL對所有的平臺開放。

 

對比了一下PyQt版的俄羅斯方塊和Qt版的俄羅斯方塊,發現PyQt的代碼量少了近一半之多,嗯,看來用PyQt用來快速開發GUI應用還是很不錯的,不過代碼量越少,細節隱藏的更深,多多編程,多多理解。


在瀏覽了《
Rapid GUI Programming with Python and Qt》的一些章節後,開始練練手寫了一個crack程序,就是猜用戶名和密碼,如果猜對了,對話框也就關閉。

 

代碼很簡單而且很簡潔

運行結果

                          

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class Crack(QDialog):    
                
    def __init__(self,parent = None):
        super(Crack,self).__init__(parent)
        self.usr_label = QLabel('usr')
        self.pwd_label = QLabel('pwd')
        self.ok = QMessageBox()
        self.usr_edit = QLineEdit()
        self.pwd_edit = QLineEdit()
        self.pwd_edit.setEchoMode(QLineEdit.Password)
        self.test_button = QPushButton('test')
        
        H_layout = QHBoxLayout()
        H2_layout = QHBoxLayout()
        V_layout = QVBoxLayout()
        
        H_layout.addWidget(self.usr_label)
        H_layout.addWidget(self.usr_edit)
        H2_layout.addWidget(self.pwd_label)
        H2_layout.addWidget(self.pwd_edit)
        
        V_layout.addLayout(H_layout)
        V_layout.addLayout(H2_layout)
        V_layout.addWidget(self.test_button)
        
        self.usr_edit.setFocus()
        self.setLayout(V_layout)  
        self.connect(self.test_button,SIGNAL("clicked()"),self.test)
    
    def test(self):
            if self.usr_edit.text() == 'root' and self.pwd_edit.text() == 'toor':
                
                self.ok.setText("congratulations")
                self.ok.open()
                self.close()
                
            else:
                self.usr_edit.clear()
                self.pwd_edit.clear()
            
        
            
        
app = QApplication(sys.argv)
form = Crack()
form.show()
app.exec_()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章