现在我能一整天都严肃地盯着屏幕,看起来就像在很认真地工作,
利用摸鱼,打开小说,可实行完美摸鱼,实时保存进度
用pyq身心灵书籍t5 mock一个摸鱼软件 类似于thief
q 退出
b 书签功能
f 增加字体大小
shift f 减小字体
o 打开文件,现在仅仅支持 utf8格式的txt文件
flameless window 无边框窗口
一键快速退出
ini 文件读写
右键上下文菜单
pyqt 实现功能还是比较顺畅的,总体功能实现代码量不到200行
from pyqt5 import qtcorefrom pyqt5.qtwidgets import *from pyqt5.qtgui import *from pyqt5.qtcore import qtimport sys,osimport configparr# q to quit app# b bookmark # f increa font size # shift f decrea font size# o open *.txt fileclass fisherreader(qmainwindow):def __init__(lf):super().__init__()# draglf.pos =[0,0]lf.mou_down = fallf.down = [0,0]lf.prev = [0,0]# textlf.txtname = ''lf.text = []lf.index = 0# stylelf.show_info = fallf.font_size = 8lf.bgcolor = qcolor(255,255,255)lf.defpalette()# lf.read_txt()def moupresvent(lf, event):current = [event.pos().x(),event.pos().y()]lf.down = currentlf.mou_down = truedef moumoveevent(lf,event):current = [event.pos().x(),event.pos().y()]if lf.mou_down:delta = [current[0]-lf.down[0],current[1]-lf.down[1]]new = [lf.pos[0]+delta[0],lf.pos[1]+delta[1]]lf.move(new[0],new[1])lf.pos = new# print(lf.pos)lf.prev = currentdef moureleaevent(lf, event):lf.mou_down = faldef keypresvent(lf,event):if event.key() == qt.key_q:app.quit()if event.key() == qt.key_down:if lf.index < len(lf.text)-1:lf.index = lf.index+1lf.update()if event.key() == qt.key_up:if lf.index > 0:lf.index = lf.index-1lf.update()if event.key() == qt.key_f:if event.modifiers() & qtcore.qt.shiftmodifier and lf.font_size >2:lf.font_size -= 2el:lf.font_size += 2lf.update()if event.key() == qt.key_i:lf.show_info = not lf.show_infolf.update()if event.key() == qt.key_o:lf.open()lf.update()if event.k孝敬ey() == qt.key_b:lf.addbookmark()if event.key() == qt.key_r:lf.getbookmark()def defpalette(lf):p = lf.palette()p.tcolor(qpalette.background,lf.bgcolor)lf.window().tpalette(p)def paintevent(lf,event):painter = qpainter(lf)painter.trenderhints(qpainter.antialiasing)if len(lf.text)>0:painter.tfont(qfont('simsun',lf.font_size))painter.drawtext(旅行的意义歌词qtcore.qrectf(10,10,600,50),qt.alignleft,lf.text[lf.index])if lf.show_info:painter.drawtext(qtcore.qrectf(610,10,50,50),qt.alignleft,"{}/{}".format(lf.index+1,len(lf.text)))def open(lf):path, _ = qfiledialog.getopenfilename(lf, "打开文件",os.getcwd(), "text files (*.txt)")if path:lf.txtname = pathlf.read_txt_smart(path)lf.update()def read_txt(lf,file):with open(file,'r',encodin学校编号g="utf-8") as f:lf.text = f.readlines()def cut(lf,text,length):return [text[i:i+length] for 外国童话i in range(0,len(text),length)]def wheelevent(lf, e):if e.angledelta().y() < 0:if lf.index < len(lf.text)-1:lf.index = lf.index+1elif e.angledelta().y() > 0:if lf.index > 0:lf.index = lf.index-1lf.update() def addbookmark(lf):config = configparr.configparr()path = "bookmark.ini"config.add_ction('bookmark')config.t('bookmark','path',lf.txtname)config.t('bookmark','bookmark',str(lf.index))config.write(open(path,'w'))def getbookmark(lf):config = configparr.configparr()path = "bookmark.ini"config.read(path)if config.has_option('bookmark','path'):lf.txtname = config.get('bookmark','path')lf.index = int(config.get('bookmark','bookmark'))lf.read_txt_smart(lf.txtname);lf.update()def read_txt_smart(lf,file):with open(file,'r',encoding="utf-8") as f:text_buffer = []lines = f.readlines()for line in lines:cline = lf.cut(line,30)for cl in cline:if len(cl)>1:text_buffer.append(cl)lf.text = text_bufferif __name__ == '__main__':app = qapplication(sys.argv)fisher = fisherreader()fisher.resize(660,45)fisher.twindowflags(qt.framelesswindowhint|qt.windowstaysontophint)fisher.show()fisher.twindowtitle("小鱼")sys.exit(app.exec_())
到此这篇关于基于pyqt5制作一个桌面摸鱼工具的文章就介绍到这了,更多相关pyqt5桌面摸鱼工具内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-05 01:08:21,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/6ab43d8778f672ed69be489ee2bec022.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:基于PyQT5制作一个桌面摸鱼工具.doc
本文 PDF 下载地址:基于PyQT5制作一个桌面摸鱼工具.pdf
留言与评论(共有 0 条评论) |