写在前面

用python的WX包来实现一个简易的古诗文阅览软件,帮助自己欣赏古诗文,软件如下:

所有显示的古诗文均来自爬虫栏中的《python爬取古诗文网站诗文一栏的所有诗词》爬到的信息,现在将他们随机展示出来。

开始正文

1.展示导入的包

在此,主要用到3个包,分别为生成图形框的包,操作MYSQL的包和生成随机数的包

import wx
import pymysql
import random
2.生成图形框,并绑定事件

在此,常见了一个类,将之后的所有操作都做成类的方法,比较方便
生成图形框

  1. 将类继承wx,Frame
  2. 生成一个Panel
  3. 初始化数据库
  4. 创建两个StaticText,用于显示诗词的名称和作者
  5. 创建一个TextCtrl,显示内容
  6. 创建三个BoxSizer,设置诗词名称,作者,内容的位置展示
  7. 绑定事件,将窗口获取到鼠标左键点击为切换下一首诗的指令
    代码如下:
class Gushiw(wx.Frame):def __init__(self,parent):self.sql = Gushiw_databases()wx.Frame.__init__(self,parent,title='古诗文鉴赏')bkg = wx.Panel(self)self.title_name = wx.StaticText(bkg,wx.LEFT)self.author_name = wx.StaticText(bkg,wx.ALIGN_CENTER)self.contexts = wx.TextCtrl(bkg,style=wx.TE_MULTILINE|wx.ALIGN_CENTER|wx.TE_READONLY)name_text = "静夜思"self.title_name.SetLabel(name_text)h1box = wx.BoxSizer(wx.HORIZONTAL)# h1box.AddStretchSpacer(1)h1box.Add(self.title_name,proportion=0,flag=wx.EXPAND|wx.LEFT|wx.ALIGN_CENTER,border=20)author = '李白'self.author_name.SetLabel(author)h2box = wx.BoxSizer(wx.HORIZONTAL)h2box.AddStretchSpacer(2)h2box.Add(self.author_name,proportion=1,flag=wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL,border=20)context = "床前明月光,\n疑是地上霜,\n举头望明月,\n低头思故乡。"self.contexts.SetValue(context)h3box = wx.BoxSizer(wx.VERTICAL)h3box.Add(h1box,proportion=0,flag=wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL,border=20)h3box.Add(h2box,proportion=0,flag=wx.EXPAND,border=10)h3box.Add(self.contexts,proportion=1,flag=wx.ALL|wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=20)bkg.SetSizer(h3box)bkg.Bind(event=wx.EVT_LEFT_DOWN, handler=self._next_text)
3.更新信息和链接数据库

将发生鼠标左键点击事件时,会执行_next_text接口,这是会连接数据库,并,读出一条数据,拿来显示

 def _update_info(self,title,author,contexts):self.title_name.SetLabel(title)self.author_name.SetLabel(author)self.contexts.SetValue(contexts)def _next_text(self,event):self.connect_sql()def connect_sql(self):data = self.sql.read_data()print(data)self._update_info(data[1],data[2],data[3])
4.数据库类
class Gushiw_databases():def __init__(self):self.db = pymysql.connect(host = '127.0.0.1',user = 'root',password = 'root',database = 'gushiw',port = 3306)self.cursor = self.db.cursor()def read_data(self):id = random.randint(127,4017)print(id)sql = 'select * from gushiw_table where id = %s'value = self.cursor.execute(sql,(id,))value = self.cursor.fetchall()return value[0]
5.主函数
def main():app = wx.App()text = Gushiw(parent=None)text.Show()app.MainLoop()
6.再次运行展示

使用WX包实现一个简易的古诗文欣赏软件相关推荐

  1. 古诗文欣赏-春夜宴桃李园序

    春夜宴桃李园序 作者:李白 (唐代) 夫天地者,万物之逆旅也:光阴者,百代之过客也. 而浮生若梦,为欢几何?古人秉烛夜游,良有以也. 况阳春召我以烟景,大块假我以文章.会桃李之芳园,序天伦之乐事. 群 ...

  2. 二十四、爬取古诗网中的100首古诗文

    @Author: Runsen 想当年,我可是背不了古诗三百首的蠢材.我国古代叙事.抒情的方式.手段,古人的情怀至今我真的搞不懂. 今天安利一个网站:古诗文网,简直就是学生党的福音,我的噩梦,尤其是对 ...

  3. 【免费接口】免费api--前端免费测试接口--随机古诗文--每天随机一句古诗文接口

    给大家推荐一个免费的古诗文接口. 可以随机获取一句古诗文名句. 当然,这是我自己写的. http://api.ngxs.ink/get/你的邮箱 使用方法: 第一步:注册并登陆网站账号(http:// ...

  4. python写一个文件下载器_Python3使用TCP编写一个简易的文件下载器

    原标题:Python3使用TCP编写一个简易的文件下载器 利用Python3来实现TCP协议,和UDP类似.UDP应用于及时通信,而TCP协议用来传送文件.命令等操作,因为这些数据不允许丢失,否则会造 ...

  5. 连夜撸了一个简易聊天室

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 分不清轮询.长轮询?不知道什么时候该用websocket还 ...

  6. 从零开始实现一个简易的Java MVC框架(六)--加强AOP功能

    前言 在前面从零开始实现一个简易的Java MVC框架(四)--实现AOP和从零开始实现一个简易的Java MVC框架(五)--引入aspectj实现AOP切点这两节文章中已经实现了AOP功能并且引用 ...

  7. 肝一波 ~ 手写一个简易版的Mybatis,带你深入领略它的魅力!

    零.准备工作 <dependencies><dependency><groupId>mysql</groupId><artifactId>m ...

  8. 撸一个简易聊天室,不信你学不会实时消息推送(附源码)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐 19 个 github 超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 分不清轮询.长轮询? ...

  9. Jsoup抓取网页数据完成一个简易的Android新闻APP

    前言:作为一个篮球迷,每天必刷NBA新闻.用了那么多新闻APP,就想自己能不能也做个简易的新闻APP.于是便使用Jsoup抓取了虎扑NBA新闻的数据,完成了一个简易的新闻APP.虽然没什么技术含量,但 ...

最新文章

  1. Linux基础:让history记录命令的历史执行时间
  2. 最新ZeuS僵尸网络敲响网银安全警钟
  3. 头文件setjmp.h
  4. 【408预推免复习】操作系统之虚拟存储器
  5. 2017.10.25笔记3
  6. JavaScript学习笔记之数组(二)
  7. ElasticSearch搜索引擎常见面试题总结
  8. uva 10723 Cyborg Genes
  9. qt登录界面跳转_每天10分钟,木辛老师带你实战慕课软件开发:登录界面开发第2课...
  10. QQ红包源码 大转盘抽奖源码下载 微信红包源码
  11. 第一、二类斯特林(Stirling)数的生成函数(母函数)及推导
  12. 单机类似节奏大师游戏源码项目
  13. 《结构分析的有限元法与MATLAB程序设计》笔记
  14. 基于MATLAB的有源三相滤波器的设计,基于MATLAB的有源滤波器的设计与仿真
  15. 阿里腾讯裁员30%,互联网大厂此举预示着什么?
  16. b站视频素材哪里找?怎么找b站素材?
  17. windows10系统还原
  18. CET-4 week 6th -- 后缀
  19. VC++图形平移功能的实现
  20. 使用TP5开发微信服务商支付

热门文章

  1. UC整合团购,商城,论坛等莫名其妙“通信失败”的解决办法
  2. 解决安装CST时不能启动license服务,显示“could not start service ‘CST License Manager‘ service“的问题。
  3. C++ transform
  4. 工大SSE(中等难度)
  5. linux localtime 时区,localtime与时区zonetime的问题
  6. 1、防火墙的基础知识
  7. 2022年最新Wordpress主题Zibll子比主题V6.5最新完美破解开心版
  8. 《影响力》note,kotlin开发环境搭建
  9. 吴恩达深度学习笔记- lesson4 卷积神经网络
  10. 软件工程毕业设计课题(15)基于python的毕业设计python教室图书馆座位预约系统毕设作品源码