91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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_()

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

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

    關(guān)注

    16

    文章

    439

    瀏覽量

    38078
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

    VirtualLab:衍射角計算器

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

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

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

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

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

    Debye-Wolf積分計算器的用法

    即可進(jìn)行計算。 該案例將說明如何在VirtualLab中使用Debye-Wolf積分計算器。 **建模任務(wù) ** 開啟Debye-Wolf積分計算器 ?我們直接單擊計算器,然后選擇D
    發(fā)表于 12-26 08:59

    LP光纖模式計算器

    :漸變折射率 (GRIN) 光纖 光纖模式計算器允許定義線性偏振貝塞爾模式和線性偏振拉蓋爾模式。 對于 GRIN 光纖,定義了梯度常數(shù)。 然后通過下式計算折射率 與前種情況樣,
    發(fā)表于 12-18 13:36

    希望各位能推薦一款能夠制作卡拉OK混響器的芯片?

    希望各位能推薦一款能夠制作卡拉OK混響器的芯片。謝謝
    發(fā)表于 11-04 06:59

    使用DRV421進(jìn)行設(shè)計:系統(tǒng)參數(shù)計算器

    電子發(fā)燒友網(wǎng)站提供《使用DRV421進(jìn)行設(shè)計:系統(tǒng)參數(shù)計算器.pdf》資料免費下載
    發(fā)表于 10-26 09:52 ?1次下載
    使用DRV421進(jìn)行設(shè)計:系統(tǒng)參數(shù)<b class='flag-5'>計算器</b>

    基于FPGA的計算器設(shè)計

    本文通過FPGA實現(xiàn)8位十進(jìn)制數(shù)的加、減、乘、除運算,通過矩陣鍵盤輸入數(shù)據(jù)和運算符,矩陣鍵盤的布局圖如下所示。該計算器可以進(jìn)行連續(xù)運算,當(dāng)按下等號后,可以直接按數(shù)字進(jìn)行下次運算,或者按運算符,把上次運算結(jié)果作為本次運算的第個操作數(shù)。
    的頭像 發(fā)表于 10-24 14:28 ?1272次閱讀
    基于FPGA的<b class='flag-5'>計算器</b>設(shè)計

    如果設(shè)計一款桌面的機器玩具,最吸引人的外觀與功能要有哪些?

    初步設(shè)想制作如下其中一款,有感興趣的朋友可以幫提提意見。 A一款圓敦敦的音響狀的“個人日程助手”,具備番茄鬧鐘、音樂播放、減壓交互、語言對話、工作日報生成。 B一款迷你瓦利機器人,有
    發(fā)表于 10-19 18:25

    CAN位時序參數(shù)計算器

    電子發(fā)燒友網(wǎng)站提供《CAN位時序參數(shù)計算器.pdf》資料免費下載
    發(fā)表于 10-11 09:55 ?1次下載
    CAN位時序參數(shù)<b class='flag-5'>計算器</b>

    色環(huán)電阻計算器的研究與應(yīng)用

    個理想的色環(huán)電阻計算器的界面應(yīng)該包含個顏色選擇,讓用戶能夠通過點擊或下拉菜單選擇各個顏色環(huán)。而在程序邏輯層面,計算器需要具備實時反饋功
    的頭像 發(fā)表于 09-18 13:45 ?876次閱讀

    設(shè)計一款基于opa847的高通濾波,仿真達(dá)不到效果怎么解決?

    各位好,目前打算設(shè)計一款基于opa847的高通濾波,放大倍數(shù)為40dB,截止頻率為20kHz,通過書籍資料上的公式計算出的結(jié)果進(jìn)行仿真,似乎達(dá)不到效果,想請問各位該如何解決?
    發(fā)表于 08-19 07:18
    主站蜘蛛池模板: 欧美性野久久久久久久久 | 天天爽夜夜爽人人爽免费 | 亚洲国产七七久久桃花 | 午夜啪啪福利视频 | 国产精品亚洲四区在线观看 | 男男gay污小黄文 | 久久精品视频国产 | 欲色啪| 四虎影库永久在线 | 亚洲伊人久久在 | se97se成人亚洲网站 | 中文三 级 黄 色 片 | 午夜激情影视 | 免费国产不卡午夜福在线观看 | 亚洲аv电影天堂网 | 国产成人综合网在线播放 | 欧美日韩国产另类一区二区三区 | a4yy私人毛片在线 | 色噜噜狠狠狠综合曰曰曰 | 日韩二级| 亚洲国产成人久久午夜 | 国产高清视频在线免费观看 | 福利片网站 | 亚洲色图20p | 欧美sese| 久久香蕉国产线看观看亚洲片 | 天堂在线国产 | 亚洲 午夜在线一区 | www欧美在线观看 | 道区二区三区四区 | 91精品欧美激情在线播放 | 女人扒开腿让男人桶到爽 | 特黄日韩免费一区二区三区 | www.4虎| 中文字幕一区二区三区精彩视频 | 人人揉揉香蕉大免费不卡 | 国产91色综合久久免费分享 | 91久久青草精品38国产 | 久操精品在线观看 | 永久精品免费影院在线观看网站 | 奇米影视亚洲狠狠色777不卡 |