wxpython手速測試程式

2021-09-25 20:14:58 字數 2338 閱讀 9043

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

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

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

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)

defontext

(self,evt)

: self.count =

0#敲擊回車時,計數清零

self.timestart=time.time(

)#當前時間,單位為秒

defoncount

(self,evt)

: self.count +=

1if 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__':)

frame = testframe(title=

"test"

) frame.show(

))

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

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

然後是多行文字輸入控制項,我們為其繫結了兩個函式。ontext為敲擊回車時的事件響應,此時計數歸零,並對初始時間重新賦值。oncount表示當內容發生變化時響應,通過計數變數除以時間差從而得到單位時間的操作次數。

然後定義了乙個滾動條,minvalue、maxvalue這兩個引數顧名思義,即最小值和最大值。style即風格,此前我們在定義輸入文字框時也有提到,但這次定義的風格中多了乙個"|"字元。

"|「字元代表或的意思,如果我們希望某個控制項同時具備多種風格,即可以用」|"來連線。wx.slider的風格還是多種多樣的。我們所呼叫的兩個風格分別表示:

wxPython開發程式

漂亮的介面是乙個gui程式必不可少的一部分,wxpython可以快速簡潔的開發介面。加之python強大的功能和簡潔的語法,可以說wxpython是python在gui中的一種主流應用。乙個基本的wxpython程式必須的五個基本步驟,少一步都不可以。1 匯入必須的wxpython包 2 子類化wx...

ziheng 學習測手速

1.視窗 import tkinter as tk import time window tk.tk window.geometry 300x400 window.title 測手速遊戲 dian zan ci shu 0t2 time.time def zan global dian zan ci...

手速場題解 E 中

題目 有一天,kiki 收到一張奇怪的信,信上要kiki 計算出給定數各個位上數字為偶數的和.eg.5548 結果為12 等於 4 8 kiki 很苦惱.想請你幫忙解決這個問題.輸入 輸入資料有多組,每組佔一行,只有乙個數字,保證數字在int範圍內 輸出 對於每組輸入資料,輸出一行,每兩組資料之間有...