通過三個簡單軟體程式分析,找到pyqt gui程式設計的感覺!
(源自《rapid gui programming with python and qt》,本文將示例由qt4改成qt5版本)
軟體2:計算器
該示例是乙個對話方塊應用程式,即沒有選單欄、工具條、狀態列。軟體功能:
1.使用者輸入數學表示式,按回車鍵後,表示式及結果就會顯示出來。
2.如果輸入的表示式無效,軟體會顯示錯誤資訊。
軟體執行效果圖
2 乙個計算器
3 該示例是乙個對話方塊應用程式,即沒有選單欄、工具條、狀態列。
4 軟體功能:
5 1.使用者輸入數學表示式,按回車鍵後,表示式及結果就會顯示出來。
6 2.如果輸入的表示式無效,軟體會顯示錯誤資訊。
7 '''
8 9 importsys
10 from math import * #輸入的表示式可使用math模組中所有數學函式,如sin、cos
11 from pyqt5.qtwidgets import * #使用此模組中的qwidget,qtextbrowser、qlineedit
12 13 #通過qdialog子類化的方法建立乙個頂級視窗
14 #pyqt中的所有控制項都是繼承自qwidget, 如:qdialog,qlineedit
15 classform(qdialog):
16 17 def __init__(self):
18 super().__init__() #初始化視窗
19 20 #建立兩個視窗控制項
21 self.browser =qtextbrowser()
22 self.lineedit = qlineedit("type an expression and press enter")
23 self.lineedit.selectall()
24 25 #建立乙個垂直布局管理器qvboxlayout
26 #pyqt提供了三種布局管理器:垂直布局/水平布局/網格布局,它們可以彼此巢狀。
27 #使用了布局管理器後,各種控制項會隨著視窗的大小改變自動調整。
28 layout =qvboxlayout()
29 layout.addwidget(self.browser)
30 layout.addwidget(self.lineedit)
31 self.setlayout(layout)
32 33 self.lineedit.setfocus()
34 35 #訊號(returnpressed)連線到槽(updateui)
36 #當使用者在lineedit上按下回車鍵時,retrunpressed訊號就會發射出來,
37 #因有connect , 此時會呼叫updateui().
38 self.lineedit.returnpressed.connect(self.updateui)
39 40 self.setwindowtitle("calculate")
41 42 defupdateui(self):
43 try:
44 text =self.lineedit.text()
45 46 #使用eval函式計算表示式的值
".format(text,eval(text)))
48 except:
".format(text))
50 52 form = form() #建立form例項
53 form.show() #呼叫了show()後,事件迴圈開始,顯示出視窗
GUI程式設計Pyqt5之QtDesigner控制項
垂直布局 verticallayout 水平布局 horizontallayout 網格布局 gridlayout 表單布局 formlayout 絕對布局 預設 水平間隔 horizontalspacer 豎直間隔 verticalspacer 常規按鈕 pushbutton 工具按鈕 toolb...
PyQt5 學習筆記
pyqt5是由一系列python模組組成。超過620個類,6000函式和方法。能在諸如unix windows和mac os等主流作業系統上執行。pyqt5有兩種證書,gpl和商業證書。pyqt5類分為很多模組,主要模組有 qtcore 包含了核心的非gui的功能。主要和時間 檔案與資料夾 各種資料...
GUI學習之一 PyQt5初識
我們在第 篇裡先演示了gui的功能,其實python有多個庫是支援gui程式設計的,python官網列出了大量的說明,其中包括了原生的tkinter 還有許多第三方庫 pyqt pyside wxpython pygui kivy.等等 首先,我們要明白,對任意乙個庫來說,都是沒有最好的,只由最合適...