日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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_()

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

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

    關(guān)注

    16

    文章

    441

    瀏覽量

    39018
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4889

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    探索STPMC1:可編程多相電能計算器IC的卓越性能與應(yīng)用潛力

    探索STPMC1:可編程多相電能計算器IC的卓越性能與應(yīng)用潛力 在電力計量和能源管理領(lǐng)域,精確的電能計算至關(guān)重要。STPMC1作為一款可編程多相電能計算器IC,為電力系統(tǒng)的高效運(yùn)行提供
    的頭像 發(fā)表于 04-17 15:05 ?86次閱讀

    深入解析AT89C51:一款經(jīng)典8位微控制

    深入探究。 文件下載: AT89C51-24AC.pdf 、產(chǎn)品概述 AT89C51是一款低功耗、高性能的CMOS 8位微計算機(jī),擁有4K字節(jié)的Flash可編程和可擦除只讀存儲(P
    的頭像 發(fā)表于 04-06 09:05 ?648次閱讀

    [VirtualLab] 使用Python運(yùn)行VirtualLab Fusion光學(xué)仿真

    摘要 VirtualLab Fusion允許Python外部訪問其建模技術(shù)、求解和結(jié)果。這個用例介紹了種使用路徑變量和Visual Studio代碼將Python連接到Virtu
    發(fā)表于 03-31 09:39

    深度剖析ADM7154:一款卓越的RF線性穩(wěn)壓

    深度剖析ADM7154:一款卓越的RF線性穩(wěn)壓 在電子設(shè)計領(lǐng)域,電源管理是至關(guān)重要的環(huán)節(jié)。尤其是在對噪聲敏感的應(yīng)用場景中,如PLLs、VCOs等,需要一款高性能的線性穩(wěn)壓來提供穩(wěn)定
    的頭像 發(fā)表于 03-19 15:25 ?174次閱讀

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

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

    探索LM83:一款功能強(qiáng)大的溫度傳感

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    功能強(qiáng)大的PC端計算工具 。這些工具—— 晶振采購工具 、 能耗預(yù)算計算器 和 鏈路預(yù)算與覆蓋范圍計算器 ——讓優(yōu)化晶振選型、預(yù)測電池續(xù)航時間以及評估RF鏈路性能變得前所未有地簡單。
    的頭像 發(fā)表于 06-24 17:51 ?1856次閱讀
    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ù)學(xué)上被編碼在光柵方程中。在這個用例中,我們介紹了VirtualLab Fusion的衍射角計算器,這是個用于計算光柵方程的方便工具。 打開衍射角
    發(fā)表于 06-16 08:48

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

    構(gòu)思創(chuàng)新理念。如今,Google 進(jìn)步擴(kuò)展這些能力,將其應(yīng)用于解決數(shù)學(xué)基礎(chǔ)領(lǐng)域和現(xiàn)代計算中高度復(fù)雜的難題。 AlphaEvolve 是一款由大語言模型驅(qū)動的進(jìn)化式編程代理,致力于通用算法的發(fā)現(xiàn)與優(yōu)化。該平臺將 Gemini 模
    的頭像 發(fā)表于 05-19 11:19 ?1946次閱讀
    AlphaEvolve:<b class='flag-5'>一款</b>基于Gemini的編程Agent,用于設(shè)計高級算法
    西充县| 阜新市| 阳高县| 团风县| 汶川县| 兰考县| 闽侯县| 柳林县| 桃江县| 邵阳县| 定结县| 东山县| 武定县| 建平县| 洛扎县| 嘉义县| 库伦旗| 将乐县| 砀山县| 上饶县| 益阳市| 诸城市| 海林市| 公主岭市| 福州市| 渑池县| 梧州市| 利辛县| 武城县| 广东省| 伊金霍洛旗| 乐平市| 墨玉县| 富裕县| 大新县| 洪泽县| 平泉县| 陇西县| 广元市| 哈密市| 韶山市|