国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Python制作一款計算器

Wildesbeast ? 來源:今日頭條 ? 作者:有趣的程序媛 ? 2020-02-05 12:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 ui設(shè)計

使用qt designer ,按裝anaconda后,在如下路徑找到:

conda3.05Libraryin

designer.exe文件,雙擊啟動:

創(chuàng)建窗體,命名為XiaoDing,整個的界面如下所示:

私信小編01 領(lǐng)取完整項目代碼

qt 設(shè)計器提供的常用控件基本都能滿足開發(fā)需求,通過拖動左側(cè)的控件,很便捷的就能搭建出如下的UI界面,比傳統(tǒng)的手寫控件代碼要方便很多。

最終設(shè)計的計算器XiaoDing界面如下,

比如,其中一個用于計算器顯示的對象:lcdNumber,對象的類型為:LCD Number。右側(cè)為計算器中用到的所有對象。

2 轉(zhuǎn)py文件

使用如下命令,將設(shè)計好的ui文件轉(zhuǎn)為py文件

pyuic5 -o ./calculator/MainWindow.py ./calculator/mainwindow.ui

3 計算器實現(xiàn)邏輯

導(dǎo)入庫:

fromPyQt5.QtGuiimport* fromPyQt5.QtWidgetsimport* fromPyQt5.QtCoreimport* importoperator fromMainWindowimportUi_MainWindow

主題代碼邏輯很精簡:

#Calculatorstate. READY=0 INPUT=1 classMainWindow(QMainWindow,Ui_MainWindow): def__init__(self,*args,**kwargs): super(MainWindow,self).__init__(*args,**kwargs) self.setupUi(self) #Setupnumbers. forninrange(0,10): getattr(self,'pushButton_n%s'%n).pressed.connect(lambdav=n:self.input_number(v)) #Setupoperations. self.pushButton_add.pressed.connect(lambda:self.operation(operator.add)) self.pushButton_sub.pressed.connect(lambda:self.operation(operator.sub)) self.pushButton_mul.pressed.connect(lambda:self.operation(operator.mul)) self.pushButton_div.pressed.connect(lambda:self.operation(operator.truediv))#operator.divforPython2.7 self.pushButton_pc.pressed.connect(self.operation_pc) self.pushButton_eq.pressed.connect(self.equals) #Setupactions self.actionReset.triggered.connect(self.reset) self.pushButton_ac.pressed.connect(self.reset) self.actionExit.triggered.connect(self.close) self.pushButton_m.pressed.connect(self.memory_store) self.pushButton_mr.pressed.connect(self.memory_recall) self.memory=0 self.reset() self.show()

基礎(chǔ)方法:

definput_number(self,v): ifself.state==READY: self.state=INPUT self.stack[-1]=v else: self.stack[-1]=self.stack[-1]*10+v self.display() defdisplay(self): self.lcdNumber.display(self.stack[-1])

按鈕RE,M, RE對應(yīng)的實現(xiàn)邏輯:

defreset(self): self.state=READY self.stack=[0] self.last_operation=None self.current_op=None self.display() defmemory_store(self): self.memory=self.lcdNumber.value() defmemory_recall(self): self.state=INPUT self.stack[-1]=self.memory self.display()

+,-,x,/,/100對應(yīng)實現(xiàn)方法:

defoperation(self,op): ifself.current_op:#Completethecurrentoperation self.equals() self.stack.append(0) self.state=INPUT self.current_op=op defoperation_pc(self): self.state=INPUT self.stack[-1]*=0.01 self.display()

=號對應(yīng)的方法實現(xiàn):

defequals(self): ifself.state==READYandself.last_operation: s,self.current_op=self.last_operation self.stack.append(s) ifself.current_op: self.last_operation=self.stack[-1],self.current_op try: self.stack=[self.current_op(*self.stack)] exceptException: self.lcdNumber.display('Err') self.stack=[0] else: self.current_op=None self.state=READY self.display()

main函數(shù):

if__name__=='__main__': app=QApplication([]) app.setApplicationName("XiaoDing") window=MainWindow() app.exec_()

完整代碼請參考點擊閱讀原文下載,代碼只有100行。完整代碼請點擊文章最底部的【閱讀原文】。啟動后的界面如下:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計算器
    +關(guān)注

    關(guān)注

    16

    文章

    441

    瀏覽量

    38924
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90057
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    STPMC1可編程多相電能計算器IC:設(shè)計與應(yīng)用詳解

    STPMC1可編程多相電能計算器IC:設(shè)計與應(yīng)用詳解 在電力計量領(lǐng)域,精準且高效的電能計算是關(guān)鍵。STPMC1作為一款可編程多相電能計算器IC,為電力線系統(tǒng)的有效電能測量提供了強大的解
    的頭像 發(fā)表于 03-02 16:55 ?482次閱讀

    探索LM83:一款功能強大的溫度傳感

    探索LM83:一款功能強大的溫度傳感 在電子設(shè)備的設(shè)計和運行過程中,溫度監(jiān)測至關(guān)重要。而一款好的溫度傳感可以幫助我們精確捕捉溫度變化,預(yù)防過熱等問題,保障設(shè)備的穩(wěn)定運行。今天,我們
    的頭像 發(fā)表于 02-26 13:50 ?137次閱讀

    深度解析TMP401:一款強大的數(shù)字溫度傳感

    深度解析TMP401:一款強大的數(shù)字溫度傳感 在電子設(shè)備的設(shè)計中,溫度監(jiān)測是至關(guān)重要的環(huán)。今天,我們就來深入探討一款優(yōu)秀的溫度傳感——
    的頭像 發(fā)表于 02-26 09:45 ?137次閱讀

    DRV595:一款高效的PWM功率驅(qū)動

    DRV595:一款高效的PWM功率驅(qū)動 作為名電子工程師,在設(shè)計中選擇合適的功率驅(qū)動至關(guān)重要。今天,我要詳細為大家介紹德州儀器(TI)的DRV595——
    的頭像 發(fā)表于 01-30 11:05 ?260次閱讀

    STLED316S:一款強大的LED控制與驅(qū)動

    STLED316S:一款強大的LED控制與驅(qū)動 各位電子工程師們,今天要給大家詳細介紹一款非常實用的LED控制和驅(qū)動
    的頭像 發(fā)表于 01-28 09:45 ?303次閱讀

    深入解析ZSSC3286:一款強大的傳感信號調(diào)理IC

    深入解析ZSSC3286:一款強大的傳感信號調(diào)理IC 在工業(yè)和電子應(yīng)用領(lǐng)域,傳感信號的準確調(diào)理至關(guān)重要。今天要給大家詳細介紹的是ZSSC3286,這是一款具備IO - Link功能
    的頭像 發(fā)表于 12-26 18:10 ?1183次閱讀

    深入解析AP1501:一款高效的PWM BUCK DC/DC轉(zhuǎn)換

    深入解析AP1501:一款高效的PWM BUCK DC/DC轉(zhuǎn)換 在電子工程師的日常設(shè)計工作中,DC/DC轉(zhuǎn)換個常見且關(guān)鍵的組件。今天,我們就來詳細探討
    的頭像 發(fā)表于 12-17 16:05 ?487次閱讀

    靈動微電子最新最火熱的一款芯片推薦

    希望找一款靈動微電子最新最火熱的一款芯片,我們想做個圖形化的界面配置,供大家以后直接創(chuàng)建工程,用國產(chǎn)工具McuStudio做,McuStudio支持任何內(nèi)核任何廠家的芯片,希望大家有推薦的型號可以發(fā)給我
    發(fā)表于 10-29 17:15

    Quartz Frequency 實戰(zhàn):熱力圖+計算器(6 篇)

    AT-cut 面向?qū)ο螅呵度胧?硬件/射頻/物聯(lián)網(wǎng)工程師 內(nèi)容亮點:可視化圖示 + 在線計算器 + 設(shè)計邊界與案例 大家好!整理了套石英定時(Quartz Timing)高原創(chuàng)度文章與工具
    發(fā)表于 10-09 15:42

    Qorvo全新設(shè)計計算器:晶振選型、能耗預(yù)算計算器和鏈路預(yù)算與覆蓋范圍計算器

    功能強大的PC端計算工具 。這些工具—— 晶振采購工具 、 能耗預(yù)算計算器 和 鏈路預(yù)算與覆蓋范圍計算器 ——讓優(yōu)化晶振選型、預(yù)測電池續(xù)航時間以及評估RF鏈路性能變得前所未有地簡單。
    的頭像 發(fā)表于 06-24 17:51 ?1700次閱讀
    Qorvo全新設(shè)計<b class='flag-5'>計算器</b>:晶振選型、能耗預(yù)算<b class='flag-5'>計算器</b>和鏈路預(yù)算與覆蓋范圍<b class='flag-5'>計算器</b>

    VirtualLab:衍射角計算器

    介質(zhì)的折射率、結(jié)構(gòu)的周期和入射角。這種相關(guān)性在數(shù)學上被編碼在光柵方程中。在這個用例中,我們介紹了VirtualLab Fusion的衍射角計算器,這是個用于計算光柵方程的方便工具。 打開衍射角
    發(fā)表于 06-16 08:48

    AlphaEvolve:一款基于Gemini的編程Agent,用于設(shè)計高級算法

    構(gòu)思創(chuàng)新理念。如今,Google 進步擴展這些能力,將其應(yīng)用于解決數(shù)學基礎(chǔ)領(lǐng)域和現(xiàn)代計算中高度復(fù)雜的難題。 AlphaEvolve 是一款由大語言模型驅(qū)動的進化式編程代理,致力于通用算法的發(fā)現(xiàn)與優(yōu)化。該平臺將 Gemini 模
    的頭像 發(fā)表于 05-19 11:19 ?1747次閱讀
    AlphaEvolve:<b class='flag-5'>一款</b>基于Gemini的編程Agent,用于設(shè)計高級算法

    VirtualLab Fusion應(yīng)用:相干時間和相干長度計算器

    摘要 在本用例中,我們介紹了計算器,它可以根據(jù)給定光源的波譜信息快速估計其時間相干特性。然后,可以將該計算器的結(jié)果自動復(fù)制到通用探測中,以便在考慮時間相干性時應(yīng)用近似方法,而無
    發(fā)表于 04-08 08:48

    VirtualLab:衍射角計算器

    介質(zhì)的折射率、結(jié)構(gòu)的周期和入射角。這種相關(guān)性在數(shù)學上被編碼在光柵方程中。在這個用例中,我們介紹了VirtualLab Fusion的衍射角計算器,這是個用于計算光柵方程的方便工具。 打開衍射角
    發(fā)表于 04-08 08:46

    Made with KiCad(121):OpenRPNCalc 開源科學 RPN 計算器

    “? OpenRPNCalc 是一款基于 STM32 微控制的科學計算器。 ” Made with KiCad 系列將支持新的展示方式。直接將以下鏈接復(fù)制到瀏覽中(或點擊“閱讀原文
    的頭像 發(fā)表于 03-26 11:45 ?1530次閱讀
    Made with KiCad(121):OpenRPNCalc 開源科學 RPN <b class='flag-5'>計算器</b>