wxpython记录生词GUI程序

2023-05-16

不使用数据库,实现一个简单的记生词软件,基本功能包括,添加新的生词及其中文含义,浏览已经记录的单词,随机选择部分单词进行复习。可考虑其它拓展的功能。

这里使用wxpython的基本操作,以及类与函数的调用方式。

import random
import wx

mydic = {}
num = []
taged = []


class InfoPanel(wx.Frame):
    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, "词典",  pos=(0, 0), size=(450, 400))
        panel = wx.Panel(self, -1)
        rev = wx.StaticText(panel, -1, '英文:', pos=(3, 3))
        rev = wx.StaticText(panel, -1, '中文:', pos=(170, 3))
        rev = wx.StaticText(panel, -1, 'English:', pos=(50, 50))
        rev = wx.StaticText(panel, -1, 'Chinese:', pos=(250, 50))
        rev = wx.StaticText(panel, -1, '记录单词总数:', pos=(50, 29))
        rev.SetForegroundColour("black")
        rev.SetBackgroundColour("")   # 文字背景颜色,不输入为透明
        self.temp_Eng = wx.TextCtrl(panel, -1, "", pos=(40, 0), size=(100, -1))
        self.temp_ZH = wx.TextCtrl(panel, -1, "", pos=(207, 0), size=(100, -1))
        button = wx.Button(panel, wx.ID_ANY, pos=(320, 0), size=(80, 26), label='增加单词')
        button.Bind(wx.EVT_BUTTON, self.get_word)
        button2 = wx.Button(panel, wx.ID_ANY, pos=(0, 200), size=(430, 30), label='查看所有单词')
        button2.Bind(wx.EVT_BUTTON, self.scan_word)
        button3 = wx.Button(panel, wx.ID_ANY, pos=(0, 150), size=(140, 30), label='随机学习')
        button3.Bind(wx.EVT_BUTTON, self.review_word)
        button4 = wx.Button(panel, wx.ID_ANY, pos=(145, 150), size=(140, 30), label='标记')
        button4.Bind(wx.EVT_BUTTON, self.tag_button)
        button5 = wx.Button(panel, wx.ID_ANY, pos=(290, 150), size=(140, 30), label='随机查看标记单词')
        button5.Bind(wx.EVT_BUTTON, self.get_taged_word)
        self.text = wx.TextCtrl(panel, -1, "", pos=(3, 70), size=(170, 50))
        self.text2 = wx.TextCtrl(panel, -1, "", pos=(200, 70), size=(170, 50))
        self.text3 = wx.TextCtrl(panel, -1, "", pos=(0, 230), size=(430, 110), style=wx.TE_MULTILINE)
        self.total_word = wx.TextCtrl(panel, -1, "", pos=(140, 27), size=(40, 25))
        self.ran = None
        self.load_file(self)
        self.get_total_word(self)

    def get_total_word(self, event):
        global num
        self.total_word.AppendText(str(len(num)))

    def write_word2file(self, Eng, ZH):
        f = open(".\dic.txt", 'a+')
        f.write(Eng + ':'+ZH + '\n')
        f.close()

    def get_word(self, event):
        global num
        if self.temp_Eng.GetValue() != None or self.temp_ZH.GetValue() != None:
            self.write_word2file(self.temp_Eng.GetValue(), self.temp_ZH.GetValue())
        self.temp_Eng.Clear()
        self.temp_ZH.Clear()
        self.total_word.Clear()
        self.load_file(self)
        self.total_word.AppendText(str(len(num)))

    def load_file(self, event):
        global mydic
        global num
        f = open("E:\\dic.txt", 'r')
        for line in f.readlines():
            if ':' in line and line[:len(line)-1] not in num:
                mydic[line[:line.index(':')]] = line[line.index(':')+1:len(line)-1]
                num.append(line[:len(line)-1])

    def scan_word(self, event):
        global num
        self.load_file(event)
        self.text.Clear()
        for _ in range(len(num)):
            self.text3.AppendText(num[_]+'\n')


    def review_word(self, event):
        global num
        self.text.Clear()
        self.text2.Clear()
        self.ran = random.randint(0, len(num)-1)
        while self.ran == random.randint(0, len(num)-1):
            self.ran = random.randint(0, len(num) - 1)
        self.text.AppendText(num[self.ran][:num[self.ran].index(':')])
        self.text2.AppendText(num[self.ran][num[self.ran].index(':')+1:])

    def tag_button(self, event):
        if self.ran != None:
            self.tag_word(self.ran)

    def tag_word(self, event):
        global num
        global taged
        if num[self.ran] not in taged:
            taged.append(num[self.ran])
        print(num)

    def get_taged_word(self, event):
        global taged
        self.text.Clear()
        self.text2.Clear()
        _ = random.randint(0, len(taged)-1)
        while _ == random.randint(0, len(taged)-1):
            _ = random.randint(0, len(taged) - 1)
        self.text.AppendText(taged[_][:taged[_].index(':')])
        self.text2.AppendText(taged[_][taged[_].index(':') + 1:])

class MainApp(wx.App):
    def OnInit(self):
        self.frame1 = InfoPanel(None, -1)
        self.frame1.Center()
        self.frame1.Show(True)
        self.SetTopWindow(self.frame1)
        return True


if __name__ == '__main__':
    app = MainApp(0)
    app.MainLoop()

这里写图片描述
更多内容访问omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2018 • OmegaXYZ-版权所有 转载请注明出处

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wxpython记录生词GUI程序 的相关文章

  • 用于将文本复制到剪贴板的独立于平台的工具

    我正在尝试编写一个函数将字符串参数复制到剪贴板 我打算在我一直在编写的 Python 脚本中使用它 这是我到目前为止所拥有的 在另一个堆栈溢出帖子中找到了大部分此片段 from tkinter import Tk def copy to c
  • 覆盖 matplotlib 的平移工具 (wx)

    我正在使用 wxPython 面板中的 matplotlib 来执行一些繁重的绘图 我的问题是在使用本机平移工具时出现的 当您拖动平移手柄时 似乎 matplotlib 试图不断重绘画布 随着我绘制的数据量变得非常不稳定 已经使用数据集合等
  • Python PyInstaller 和包含图标文件

    我正在使用 PyInstaller v1 5 构建一个可执行文件 另外 我正在使用 GUI2EXE 来帮助我 我的脚本需要位于工作目录中的图标文件 icon file pics myicon ico 当我构建可执行文件时 我希望不必包含 工
  • wxpython如何退出Mainloop?

    我有一个 wxpython 应用程序 它的运行方式如下 if name main app wx App False frame MainWindow Application frame Show app MainLoop 应用程序的菜单栏上
  • 如何在 2D 和 3D 投影之间切换

    我有一个 matplotlib 图 我希望能够在 2D 和 3D 投影之间切换 我可以从 2D 转到 3D 但我似乎不知道如何转到另一条路 例子 import numpy as np from mpl toolkits mplot3d im
  • 如何在wxPython中制作类似日志框的东西

    我假设这可以通过多行文本框实现 但不确定如何做到这一点 我想做的是在我的 wxPython 程序中创建一个日志框 当某些操作发生时我可以在其中写入消息 另外 我不仅需要在事件发生时写入消息 还需要在代码中的某些时间写入消息 我如何才能重绘窗
  • 如何在wxpython框架中拖动图像

    在 wx 窗口中拖动图像 或文本 的最简单方法是什么 我需要一些步骤或一个小例子来说明如何做到这一点 提前感谢 看一下 wxPython 演示中的 PseudoDC 示例 该示例在窗口中显示一些随机形状 您可以抓取并移动它们 您应该能够应用
  • wxPython进度条

    我不能使用wx ProgressDialog http www wxpython org docs api wx ProgressDialog class html因为我需要向对话框添加额外的内容 暂停按钮和有关当前正在处理的内容的信息 是
  • Windows 上的 Python:如何使用 wxPython 为 wx.ListCtrl 小部件创建可访问标签?

    在 Windows 11 上的 Python 3 10 5 中使用 wxPython 4 2 0 包 我试图创建一个带标签的wx ListCtrl小部件 其中小部件标签将被屏幕阅读器识别 但我找不到这样做的方法 到目前为止 我有以下代码 h
  • 在 wxPython 中使用 time.sleep

    在重新定位位图按钮后 在我的 wxPython 代码中使用 time sleep 导致我的按钮完全空白 在按钮应该所在的区域只留下了一个空白 任何人都可以解释原因并提出任何解决方案吗 这是我的代码 import wx import time
  • wxPython 因分段错误而崩溃

    我很困惑为什么我的应用程序因分段错误而崩溃 我有一个使用 wxPython 作为前端的 python 应用程序 我的应用程序因分段错误而随机崩溃 我知道它必须是 wxPython 因为我有相同代码的控制台版本 并且它不会崩溃 前端是一个只读
  • Python:有吸引力的、干净的、可打包的 Windows GUI 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要为最终用户下载的桌面应用程序创建一个简单的基于 Windows 的 GUI 该应用程序是用 python 编写的 并将打包为安装程序
  • 使用图表构建交易平台 - 对 Python GUI 库的建议

    我正在构建一个小程序来从市场检索数据并实时绘制图表 虽然交易决策将在很大程度上自动化 但图表会不断更新 以便有人可以跟踪决策的制定方式 并在必要时进行手动干预 对于该任务 对于 Python 来说 什么是一个好的 GUI 库 以下是考虑因素
  • 使用 (wx)python 记录外部程序的输出

    我正在编写一个 GUI 用于使用 oracle exp imp 命令并通过 sqlplus 启动 sql 脚本 子进程类可以轻松启动命令 但我需要一些附加功能 我想在使用 wxPython GUI 时摆脱命令提示符 但我仍然需要一种方法来显
  • 将 [0-255] 整数范围转换为 [0.0-1.0] 浮点范围

    在 WxWidget 中 颜色由 RGB 整数三元组表示 要使用 0 0 1 0 浮点三元组表示与其他库交互 需要进行转换 WxPython Numpy 或 Python 中是否已经存在这样的转换函数 您可以将每个元素除以 255 或 25
  • 创建 Python .exe 文件:py2exe 无效图像错误

    我想创建一个 exe文件 我使用 Python 2 7 3 和 wxPython 作为 GUI 我已经安装了py2exe对于Python 2 7并尝试创建一个 exe按照教程创建文件http www py2exe org index cgi
  • WxPython改变位图按钮的形状

    嗨 我对 wxPython 还算陌生 仍在学习过程中 我正在尝试使用特定图像制作位图按钮 例如 http i min us idk3Uy png http i min us idk3Uy png 问题是我想保留按钮中图像的原始形状 例如圆形
  • WxPython:符合“确定”/“取消”按钮顺序的跨平台方式

    我正在学习 wxPython 所以大多数库和类对我来说都是新的 我正在创建一个首选项对话框类 但不知道确保 确定 取消 或 保存 关闭 按钮在平台上的顺序正确的最佳方法 该程序旨在在 GNOME 和 Windows 上运行 因此我想确保每个
  • 使用 matplotlib 将 networkx 图嵌入到 wxPython 中

    我用 networkx 创建了一个图表 G nx DiGraph building the graph and I can display it with matplotlib like this nx draw G matplotlib
  • 无法使用 wxPython 打开在 folium 中生成的本地 HTML 文件

    我目前正在尝试将 GPS 坐标绘制为地图上的标记 并在 wxPython 中显示结果 我使用 folium 绘制坐标标记并生成 HTML 文件 import folium fmap folium Map 43 5321 172 6362 z

随机推荐

  • 30个谷歌开源项目

    更多内容访问omegaxyz com 1机器学习系统 TensorFlow TensorFlow 是谷歌的第二代机器学习系统 xff0c 据谷歌说 xff0c 在某些基准测试中 xff0c TensorFlow 的表现比第一代的 DistB
  • MATLAB粒子群优化算法实现(PSO)

    PSO xff08 PSO Particle Swarm Optimization xff09 xff08 基于种群的随机优化技术算法 xff09 粒子群算法模仿昆虫 兽群 鸟群和鱼群等的群集行为 xff0c 这些群体按照一种合作的方式寻找
  • NSGA2 算法Matlab实现

    为了能随时了解Matlab主要操作及思想 故本文贴上NSGA 算法Matlab实现 xff08 测试函数为ZDT1 xff09 更多内容访问omegaxyz com NSGA 就是在第一代非支配排序遗传算法的基础上改进而来 xff0c 其改
  • NSGA2算法MATLAB

    NSGA2算法MATLAB实现 xff08 能够自定义优化函数 xff09 以前写了一个简单的NSGA2的算法能够用在ZDT1函数上 xff1a http www omegaxyz com 2017 05 04 nsga2matlabzdt
  • 编程语言编年史

    编程语言有上千种 xff0c 但是流行的不过10来种 xff0c 那些我们经常使用的编程语言都是谁在什么时候创造出来的呢 xff1f 1800年 Joseph Marie Jacquard教会了一台织布机读穿孔卡片 xff0c 制造出了第一
  • Java的密钥库jks文件放在/src/main/resources目录下报错的解决办法

    Java的密钥库jks文件放在 src main resources目录下 到了编译的时候 就会自动增长变大 导致java读取keystore文件异常 爆出 java io IOException Invalid keystore form
  • Python模拟电脑按键

    按键精灵是一个很好的Windows按键模拟器 xff0c 下面用python简单地实现所需要的功能 下面提供两种方式 xff0c 第一种一种是简单模拟 发的是虚拟消息给程序的消息队列 但是有些软件比如360和一些游戏大部分都是直接和硬件通信
  • 区块链技术认识整理

    区块链技术 腾讯视频讲解 xff1a https v qq com x page a03569ty8mu html 搜狐漫画 xff1a http www sohu com a 162764647 673573 CSDN区块链技术概念及基础
  • MATLAB中SVM(支持向量机)的用法

    LIBSVM是台湾大学林智仁 Lin Chih Jen 教授等开发设计的一个简单 易于使用和快速有效的SVM模式识别与回归的软件包 xff0c 他不但提供了编译好的可在Windows系列系统的执行文件 xff0c 还提供了源代码 xff0c
  • Python在指定文件夹生成随机文件

    有时我们需要生成一些写有随机字符串的txt文件进行测试 xff0c 这里我们采用生成随机字符串的形式来创建并命名文件 xff0c 然后再在txt文件中生成随机的字符串作为内容写入到文件里面 整个过程很简单 xff0c 但是可以作为一个模板在
  • Python字符串加密

    base64 Base64是一种用64个字符来表示任意二进制数据的方法 用记事本打开exe jpg pdf这些文件时 xff0c 我们都会看到一大堆乱码 xff0c 因为二进制文件包含很多无法显示和打印的字符 xff0c 所以 xff0c
  • Python文章归档

    下面是最新的Python文章目录导航 Python基础面向对象语句函数文件正则表达式Python GUI 程序Python模块Python机器学习Python爬虫与Python相关的 内容更新至2018年1月22日 Python基础 xff
  • 7个优秀的境外程序员博客

    如果你想成为程序员 xff0c 你需要沉浸在编程文化中 如果你仍然是一个学生 xff0c 这是更真实的 编程领域非常广泛 xff0c 吸收了太多的信息 xff0c 如果你远距离参与 xff0c 你永远不会出现在最前面 幸运的是 xff0c
  • k-means算法概述

    优点与缺点 K means算法思想 K MEANS算法是输入聚类个数k xff0c 以及包含 n个数据对象的数据库 xff0c 输出满足方差最小标准k个聚类的一种算法 k means 算法接受输入量 k xff1b 然后将n个数据对象划分为
  • MATLAB随机数生成器

    1 rand 生成 0 1 区间上均匀分布的随机数 基本语法 xff1a rand M N P 生成排列成M N P 多维向量的随机数 如果只写M xff0c 则生成M M矩阵 xff1b 如果参数为 M N 可以省略方括号 2 randn
  • Python弹球游戏(tkinter模块编写)

    python弹球游戏 xff0c 能够选择难度和分数控制 程序利用tkinter模块编写 xff08 说到这里吐槽一下tkinter模块 xff0c 虽然tkinter是python自带的模块 xff0c 但是编写手感真没有wxpython
  • SSH登录时提示Read from socket failed: Connection reset by peer.

    首先查看日志 tail f var log auth log 添加参数 v 获得更详细的连接信息 ssh user 64 computerB v 1 如果是 rsa and dsa keys 丢失产生的问题 可以通过下面的方式进行修复 ss
  • Python密码存储器

    xff08 不使用数据库 xff09 设计一个密码记录及查询小软件 xff0c 模拟记录自己在各个网站上所使用的账号及密码 xff0c 保存在文件中 要求自行设计存储方式 xff0c 并实现浏览 xff0c 查询 xff0c 增加 xff0
  • Python英文搜索引擎(模糊搜索)

    假设在C Record下面有若干个 txt文件 xff0c 均为纯英文文档 以这些文档为内容 xff0c 实现一个本地搜索引擎 xff0c 当用户给出某个输入时 xff0c 列出相关的搜索结果 可以自行决定改搜索引擎的功能强弱 xff0c
  • wxpython记录生词GUI程序

    不使用数据库 实现一个简单的记生词软件 xff0c 基本功能包括 xff0c 添加新的生词及其中文含义 xff0c 浏览已经记录的单词 xff0c 随机选择部分单词进行复习 可考虑其它拓展的功能 这里使用wxpython的基本操作 xff0