滾動條是什麼大家自然都是知道的,可以非常直觀地顯示資料的變化,或者可以非常方便地改變某些數值。
此前在介紹按鈕、靜態文字、輸入文字這三個控制項時,相對來說比較乏味,所以這次我們採用需求引導的模式。假如想編寫乙個軟體用來檢測打字速度,同時能夠非常直觀地通過滾動條來顯示出來,應該怎麼寫?
我們大致需要三個控制項,文字輸入控制項用來輸入文字;靜態文字控制項用於顯示速度;滾動條用來動態地顯示速度。同時,還需要知道系統的時間,總之,**如下
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範圍內 輸出 對於每組輸入資料,輸出一行,每兩組資料之間有...