溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python光學仿真學習wxpython怎么創建手速測試程序

發布時間:2021-10-20 10:52:13 來源:億速云 閱讀:120 作者:iii 欄目:開發技術

這篇文章主要講解了“python光學仿真學習wxpython怎么創建手速測試程序”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python光學仿真學習wxpython怎么創建手速測試程序”吧!

滾動條是什么大家自然都是知道的,可以非常直觀地顯示數據的變化,或者可以非常方便地改變某些數值。

此前在介紹按鈕、靜態文本、輸入文本這三個控件時,相對來說比較乏味,所以這次我們采用需求引導的模式。假如想編寫一個軟件用來檢測打字速度,同時能夠非常直觀地通過滾動條來顯示出來,應該怎么寫?

我們大致需要三個控件,文本輸入控件用來輸入文字;靜態文本控件用于顯示速度;滾動條用來動態地顯示速度。同時,還需要知道系統的時間,總之,代碼如下

import wx
import time #時間模塊
class testFrame(wx.Frame):
    def __init__(self, parent=None, title="test",size=(300,320)):
        wx.Frame.__init__(self,parent=parent, title=title,size=size)
        self.SetBackgroundColour(wx.Colour(222,222,222))
        self.timeStart=0
        self.count=0
        self.setText = wx.TextCtrl(self,value="input",
            pos=(10,10),size=(240,240),style=wx.TE_MULTILINE)
        self.ratioSlider = wx.Slider(self,
            minValue=0,maxValue=20,pos=(260,10),size=(20,220),
            style=wx.SL_VERTICAL|wx.SL_INVERSE)
        self.ratioLabel = wx.StaticText(self,-1,"0",
            pos=(260,240),size=(20,10))
        self.setText.Bind(wx.EVT_TEXT,self.onCount)
        self.setText.Bind(wx.EVT_TEXT_ENTER,self.onText)
    def onText(self,evt):
        self.count = 0              #敲擊回車時,計數清零
        self.timeStart=time.time()  #當前時間,單位為秒
    def onCount(self,evt):
        self.count += 1
        if self.timeStart==0:
            self.timeStart = time.time()
        ratio = self.count/(time.time()-self.timeStart)
        self.ratioSlider.SetValue(ratio)
        self.ratioLabel.SetLabel(str(ratio))
if __name__ == '__main__':
    app = wx.App()
    frame = testFrame(title="test")
    frame.Show()
    app.MainLoop()

其結果如下圖所示:

python光學仿真學習wxpython怎么創建手速測試程序

這個程序實現的并不是打字速度,而是手速。文本輸入控件中的字符每改變一次,就算作一次有效操作,包括增加字符或者刪除字符。通過字符變化的次數除以時間,來統計每秒敲擊鍵盤的次數。當敲擊回車時,計數清零,重新開始。

先來看初始化函數,定義了self.count用于計數,self.timeStart用于記錄初始時間,時間模塊在一些算法測試中可能會經常用到。

然后是多行文本輸入控件,我們為其綁定了兩個函數。onText為敲擊回車時的事件響應,此時計數歸零,并對初始時間重新賦值。onCount表示當內容發生變化時響應,通過計數變量除以時間差從而得到單位時間的操作次數。

然后定義了一個滾動條,minValue、maxValue這兩個參數顧名思義,即最小值和最大值。style即風格,此前我們在定義輸入文本框時也有提到,但這次定義的風格中多了一個"|"字符。

"|“字符代表或的意思,如果我們希望某個控件同時具備多種風格,即可以用”|"來連接。wx.Slider的風格還是多種多樣的。我們所調用的兩個風格分別表示:

  • wx.SL_VERTICAL 表示我們創建的是縱向的滑動條。默認為橫向,其標志為wx.HORIZONTAL。

  • wx.SL_INVERSE 表示我們翻轉最大值和最小值的方向。

感謝各位的閱讀,以上就是“python光學仿真學習wxpython怎么創建手速測試程序”的內容了,經過本文的學習后,相信大家對python光學仿真學習wxpython怎么創建手速測試程序這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女