wxpython手速测试程序

2023-10-15 04:10

本文主要是介绍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=0self.count=0self.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 += 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__':app = wx.App()frame = testFrame(title="test")frame.Show()app.MainLoop()

其结果如下图所示:
在这里插入图片描述

解读

这个程序实现的并不是打字速度,而是手速。文本输入控件中的字符每改变一次,就算作一次有效操作,包括增加字符或者删除字符。通过字符变化的次数除以时间,来统计每秒敲击键盘的次数。当敲击回车时,计数清零,重新开始。

先来看初始化函数,定义了self.count用于计数,self.timeStart用于记录初始时间,时间模块在一些算法测试中可能会经常用到。

然后是多行文本输入控件,我们为其绑定了两个函数。onText为敲击回车时的事件响应,此时计数归零,并对初始时间重新赋值。onCount表示当内容发生变化时响应,通过计数变量除以时间差从而得到单位时间的操作次数。

然后定义了一个滚动条,minValue、maxValue这两个参数顾名思义,即最小值和最大值。style即风格,此前我们在定义输入文本框时也有提到,但这次定义的风格中多了一个"|"字符。

"|“字符代表或的意思,如果我们希望某个控件同时具备多种风格,即可以用”|"来连接。wx.Slider的风格还是多种多样的。我们所调用的两个风格分别表示:

  • wx.SL_VERTICAL 表示我们创建的是纵向的滑动条。默认为横向,其标志为wx.HORIZONTAL。
  • wx.SL_INVERSE 表示我们翻转最大值和最小值的方向。

这篇关于wxpython手速测试程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215248

相关文章

【15.3 python中的wxPython框架的常用控件】

python中的wxPython框架的常用控件 wxPython框架为Python开发者提供了丰富的GUI控件(widgets),这些控件可以用于构建用户界面。下面是一些常用的wxPython控件及其简单示例: 1. 窗口(Frame) 窗口是GUI应用程序的基础,用于包含其他控件。在wxPython中,wx.Frame类用于创建窗口。 import wxclass MyFrame(w

【15.2 python中用wxPython创建一个应用程序】

python中,用wxPython创建一个应用程序demo wxPython 介绍 wxPython 是 wxWidgets 的 Python 封装,wxWidgets 是一个跨平台的 C++ GUI 工具包,它允许开发者为多种平台(包括 Windows、Mac OS、Linux 及其他 Unix-like 系统)编写原生应用程序。wxPython 继承了 wxWidgets 的所有优点,

TensorFlow测试程序报异常:FutureWarning: Conversion of the second argument of issubdtype from `float` to `np

使用安装好的tensorflow-gpu 进行程序测试时出现异常: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(

java -- while循环拆分性能测试程序

public class SimpleTest { // 包含打印操作//100000 658 1061 1.6//1000000 5576 5073 0.9// 纯加操作//100000 4 6 1-1.5//100000 15 27 1.8//10000000 33 66 2.0public static void main(String[] args) {final i

大二第二次月赛--手速

手速 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 1 描述 被学长虐了之后,wyl 认识到了手速的重要性,yy了一道。 初始化序列为空 给 n 个操作: 0 :    从头部往里放 1 :    从尾部往里放 2 :      从头部删除 3 :      从尾部删除 4:    改变功能,原来是从头部放的从尾部放,从尾部放的从头部放,删除也是如此

从WebM到MP3:利用Python和wxPython提取音乐的魔法

前言 有没有遇到过这样的问题:你有一个包含多首歌曲的WebM视频文件,但你只想提取其中的每一首歌曲,并将它们保存为单独的MP3文件?这听起来可能有些复杂,但借助Python和几个强大的库,这个任务变得异常简单。今天,我将带你一步步实现这个小工具,并且给它取个有趣的名字:“魔法音乐分离器”。 C:\pythoncode\new\splitsongfromwebmintomp3.py 准备工作

ubuntu16.04怎样才能安装 wxpython 2.8.12.1

使用sudo apt install python-wxgtk2.8 根本找不到包 关于RIDE需要wxpython 16.04里面需要做如下才能安装 wxpython 2.8.12.1  echo "deb http://cz.archive.ubuntu.com/ubuntu trusty main universe" | sudo tee /etc/apt/sources.list.d

使用socket的Linux上的C语言helloworld多线程服务器和客户端测试程序

/// 服务器端程序的编译 gcc -o multi_thread_server multi_thread_server -lpthread 客户端程序的编译 gcc -o multi_thread_client multi_thread_client.c -lpthread 服务器程序和客户端程应当分别运行在2台计算机上. 服务器端程序的运行,在一个计算机的终

Python GUI程序之wxPython 小程序

本篇文章来自于《Python基础教程》12章 wxPython 是一个越来越受欢迎的工具,它拥有成熟且特性丰富的包,下面我们来学习一个wxPython的例子。 Demo:小型文本编辑器 1、允许打开给定文件名的文本文件 2、允许编辑文本文件 3、允许保存文本文件 4、允许退出程序 Ps:相关的函数大家可以自行百度查看,都有详细的用法说明 import wxdef load(e

力扣第417题测试程序

题目描述: 有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度 。 岛上雨水较多,如果相邻单元格的高度 小于或等于 当前单元格