怎么用PyQT5制作一个桌面摸鱼工具

怎么用PyQT5制作一个桌面摸鱼工具

这篇文章主要介绍“怎么用PyQT5制作一个桌面摸鱼工具”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用PyQT5制作一个桌面摸鱼工具”文章能帮助大家解决问题。

按键功能控制

q 退出

怎么用PyQT5制作一个桌面摸鱼工具

B 书签功能

F 增加字体大小

Shift F 减小字体

O 打开文件,现在仅仅支持 utf8格式的txt文件

主要功能

FlameLess Window 无边框窗口

一键快速退出

ini 文件读写

右键上下文菜单

核心代码

pyqt 实现功能还是比较顺畅的,总体功能实现代码量不到200行

fromPyQt5importQtCorefromPyQt5.QtWidgetsimport*fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimportQtimportsys,osimportconfigparser#Qtoquitapp#BBookmark#FincreaseFontsize#ShiftFdecreaseFontsize#OOpen*.txtfileclassFisherReader(QMainWindow):def__init__(self):super().__init__()#dragself.pos=[0,0]self.mouse_down=Falseself.down=[0,0]self.prev=[0,0]#textself.txtName=''self.text=[]self.index=0#styleself.show_info=Falseself.font_size=8self.bgColor=QColor(255,255,255)self.defPalette()#self.read_Txt()defmousePressEvent(self,event):current=[event.pos().x(),event.pos().y()]self.down=currentself.mouse_down=TruedefmouseMoveEvent(self,event):current=[event.pos().x(),event.pos().y()]ifself.mouse_down:delta=[current[0]-self.down[0],current[1]-self.down[1]]new=[self.pos[0]+delta[0],self.pos[1]+delta[1]]self.move(new[0],new[1])self.pos=new#print(self.pos)self.prev=currentdefmouseReleaseEvent(self,event):self.mouse_down=FalsedefkeyPressEvent(self,event):ifevent.key()==Qt.Key_Q:app.quit()ifevent.key()==Qt.Key_Down:ifself.index<len(self.text)-1:self.index=self.index+1self.update()ifevent.key()==Qt.Key_Up:ifself.index>0:self.index=self.index-1self.update()ifevent.key()==Qt.Key_F:ifevent.modifiers()&QtCore.Qt.ShiftModifierandself.font_size>2:self.font_size-=2else:self.font_size+=2self.update()ifevent.key()==Qt.Key_I:self.show_info=notself.show_infoself.update()ifevent.key()==Qt.Key_O:self.open()self.update()ifevent.key()==Qt.Key_B:self.addBookmark()ifevent.key()==Qt.Key_R:self.getBookmark()defdefPalette(self):p=self.palette()p.setColor(QPalette.Background,self.bgColor)self.window().setPalette(p)defpaintEvent(self,event):painter=QPainter(self)painter.setRenderHints(QPainter.Antialiasing)iflen(self.text)>0:painter.setFont(QFont('SimSun',self.font_size))painter.drawText(QtCore.QRectF(10,10,600,50),Qt.AlignLeft,self.text[self.index])ifself.show_info:painter.drawText(QtCore.QRectF(610,10,50,50),Qt.AlignLeft,"{}/{}".format(self.index+1,len(self.text)))defopen(self):path,_=QFileDialog.getOpenFileName(self,"打开文件",os.getcwd(),"Textfiles(*.txt)")ifpath:self.txtName=pathself.read_Txt_smart(path)self.update()defread_Txt(self,file):withopen(file,'r',encoding="UTF-8")asf:self.text=f.readlines()defcut(self,text,length):return[text[i:i+length]foriinrange(0,len(text),length)]defwheelEvent(self,e):ife.angleDelta().y()<0:ifself.index<len(self.text)-1:self.index=self.index+1elife.angleDelta().y()>0:ifself.index>0:self.index=self.index-1self.update()defaddBookmark(self):config=configparser.ConfigParser()path="bookmark.ini"config.add_section('bookmark')config.set('bookmark','path',self.txtName)config.set('bookmark','bookmark',str(self.index))config.write(open(path,'w'))defgetBookmark(self):config=configparser.ConfigParser()path="bookmark.ini"config.read(path)ifconfig.has_option('bookmark','path'):self.txtName=config.get('bookmark','path')self.index=int(config.get('bookmark','bookmark'))self.read_Txt_smart(self.txtName);self.update()defread_Txt_smart(self,file):withopen(file,'r',encoding="UTF-8")asf:text_buffer=[]lines=f.readlines()forlineinlines:cline=self.cut(line,30)forclincline:iflen(cl)>1:text_buffer.append(cl)self.text=text_bufferif__name__=='__main__':app=QApplication(sys.argv)fisher=FisherReader()fisher.resize(660,45)fisher.setWindowFlags(Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint)fisher.show()fisher.setWindowTitle("小鱼")sys.exit(app.exec_())

关于“怎么用PyQT5制作一个桌面摸鱼工具”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-02-15 20:39:32
收藏
分享
海报
0 条评论
49
上一篇:MySQL中redo log与binlog的区别有哪些 下一篇:怎么用C++代码实现马踏棋盘
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码