python实现360的字符显示界面

来源:中文源码网    浏览: 次    日期:2018年9月2日

【下载文档:  python实现360的字符显示界面.txt 】

(友情提示:右键点上行txt文档名->目标另存为)

python实现360的字符显示界面 复制代码 代码如下:#!/usr/bin/python #-*-coding:utf-8-*-

from push_button import *from clabel import *from common import *

from PyQt4.QtGui import *from PyQt4.QtCore import *from PyQt4.Qt import *

class CharacterWidget(QWidget): def __init__(self,parent = None): super(CharacterWidget,self).__init__() self.mouse_press = False self.mouse_move = False self.current_index = 0 #当前图片下标 self.current_pos_x = 0 #self.name_list = QStringList() self.m_mouseSrcPos = QPoint() self.m_mouseDstPos = QPoint() self.label_move = False self.label_array = [CLabel(),CLabel(),CLabel(),CLabel()] #存储图片的数组

self.resize(QSize(WINDOW_WIDTH, WINDOW_HEIGHT)) self.setWindowFlags(Qt.FramelessWindowHint)

self.background_label = QLabel(self) #背景图片 self.background_label.setPixmap(QPixmap("./img/Character/bg_bottom.png")) self.background_label.setGeometry(QRect(0, 0, self.width(), self.height()))

#将4张图片合成一张 self.pixmap = QPixmap(QSize(self.width()*WINDOW_PAGE_COUNT, WINDOW_HEIGHT)) # painter = QPainter(self.pixmap) for i in range(WINDOW_PAGE_COUNT): painter.drawImage(QRect(WINDOW_WIDTH*i, 0, WINDOW_WIDTH, WINDOW_HEIGHT),\ QImage(QString("./img/Character/desktop_%1").arg(i))) self.total_label = QLabel(self) #图片(结合体) self.total_label.resize(self.pixmap.size()) self.total_label.setPixmap(self.pixmap) self.total_label.move(WINDOW_START_X, WINDOW_START_Y)

self.close_button = PushButton(self) #关闭按钮 self.translateLanguage() for i in range(WINDOW_BUTTON_COUNT): self.label = CLabel(self) self.label.resize(QSize(155, 45)) self.label.setPixmap(QPixmap(QString("./img/Character/btn_%1").arg(i))) self.label.setText(self.name_list[i]) self.label.move(8+i*170, 319) self.connect(self.label, SIGNAL("clicked()"), self, SLOT("changeCurrentPage(CLabel())")) self.label_array[i] = self.label self.label_array[0].setMousePressFlag(False)

self.close_button.loadPixmap("./img/sysButton/close.png") self.close_button.move(self.width()-52, 0) self.connect(self.close_button, SIGNAL("clicked()"), self, SLOT("close()"))

def translateLanguage(self): self.name_list= [u"function",u"clear cookie",u"triggerman",u"booster"] self.close_button.setToolTip(u"close")

def mousePressEvent(self,event): if(event.button() == Qt.LeftButton): self.m_mouseSrcPos = event.pos() if(self.m_mouseSrcPos.y() <= 40): self.mouse_move = True else: self.current_pos_x = self.total_label.x() self.mouse_press = True elif(event.button() == Qt.RightButton): if(self.label_move): if(self.current_index > 0): self.current_index = self.current_index-1 self.moveCurrentPage(False) #右移

def mouseReleaseEvent(self,event): self.xpos = 0 if (self.mouse_press): if (self.label_move): self.m_mouseDstPos = event.pos() self.xpos = self.m_mouseDstPos.x() - self.m_mouseSrcPos.x() if(self.xpos > 0):#右移 if(self.xpos >= WINDOW_ONEBUTTON_WIDTH): if(self.current_index > 0): self.current_index = self.current_index-1 self.moveCurrentPage(False) #右移 else: self.moveCurrentPage(True) #左移 else: self.moveCurrentPage(True) #左移 else: #左移 if(self.xpos <= -WINDOW_ONEBUTTON_WIDTH): if(self.current_index < WINDOW_PAGE_COUNT-1): self.current_index = self.current_index+1 self.moveCurrentPage(True) #左移 else: self.moveCurrentPage(False) #右移 else: self.moveCurrentPage(False) #右移 self.mouse_press = False elif(self.mouse_move): self.mouse_move = False

def changeCurrentPage(label): for i in range(WINDOW_BUTTON_COUNT): if(label != self.label_array[i]): self.label_array[i].setMousePressFlag(False) #获取点击的图标下标 index = 0 for i in range(WINDOW_PAGE_COUNT): if(label == self.label_array[i]): index = i return #若下标小于当前下标右移,否则左移 if(index < self.current_index): while(index != self.current_index): self.current_index = self.current_index-1 self.moveCurrentPage(False) elif(index > self.current_index): while(index != self.current_index): self.current_index = self.current_index+1 self.moveCurrentPage(True)

def mouseMoveEvent(self,event): x = 10 if(self.mouse_press): if(self.label_move): self.m_mouseDstPos = event.pos() x = self.m_mouseDstPos.x() - self.m_mouseSrcPos.x() self.setLabelMove(False) self.total_label.move(self.current_pos_x + x, WINDOW_START_Y) self.setLabelMove(True) elif(self.mouse_move): self.m_mouseDstPos = event.pos() self.move(event.pos() + self.m_mouseDstPos - self.m_mouseSrcPos) #注意debug

def keyPressEvent(self, e): if(self.label_move): if e.key() == Qt.Key_Left | e.key() == Qt.Key_Up: if(self.current_index > 0): self.current_index = self.current_index-1 self.moveCurrentPage(False) #右移 elif e.key() == Qt.Key_Down | e.key() == Qt.Key_Right: if(self.current_index < WINDOW_PAGE_COUNT-1): self.current_index = self.current_index + 1 self.moveCurrentPage(True) #左移

def moveCurrentPage(self,direction): #改变当前页面对应的按钮 self.changeCurrentButton()

#图片的几个分割点 #0-680, 680-1360, 1360-2040, 2040-2720 #真:向左移 假:向右移

#左移的几种可能性,对于x坐标 #index=0, 将label移动到-680*0 #index=1, 将label移动到-680*1 #index=2, 将label移动到-680*2 #index=3, 将label移动到-680*3 self.setLabelMove(False) self.current_pos_x = self.total_label.x() #当前label坐标 self.dest_pos_x = -WINDOW_WIDTH * self.current_index #目标X坐标 if(direction): if(self.current_pos_x > self.dest_pos_x): self.total_label.move(self.current_pos_x-WINDOW_PAGE_MOVE, WINDOW_START_Y) self.current_pos_x = self.total_label.x() qApp.processEvents(QEventLoop.AllEvents) else: if(self.current_pos_x < self.dest_pos_x):

self.total_label.move(self.current_pos_x+WINDOW_PAGE_MOVE, WINDOW_START_Y) self.current_pos_x = self.total_label.x() qApp.processEvents(QEventLoop.AllEvents) self.total_label.move(self.dest_pos_x, WINDOW_START_Y) self.setLabelMove(True)

def changeCurrentButton(self): for i in range(WINDOW_BUTTON_COUNT): if(i != self.current_index): self.label_array[i].setMousePressFlag(False) else: self.label_array[i].setMousePressFlag(True)

def setLabelMove(self,enable): self.label_move = enableif __name__ == '__main__': import sys app = QApplication(sys.argv) Character = CharacterWidget() Character.show() sys.exit(app.exec_())

亲,试试微信扫码分享本页! *^_^*

python仿360界面_python实现360的字符显示界面相关推荐

  1. python仿360界面_python实现360的字符显示界面 -电脑资料

    复制代码代码如下: #!/usr/bin/python #-*-coding:utf-8-*- from push_button import * from clabel import * from ...

  2. python 按钮控件_python实现360皮肤按钮控件示例

    python实现360皮肤按钮控件示例. 代码: #!/usr/bin/python #-*-coding:utf-8-*- #site www.jbxue.com from PyQt4.QtGui ...

  3. python 按钮控件_python实现360皮肤按钮控件实例

    复制代码 代码如下: #!/usr/bin/python #-*-coding:utf-8-*- from PyQt4.QtGui import * from PyQt4.QtCore import ...

  4. python编辑用户登录界面_python编辑用户登入界面的实现代码

    1.需求分析 登入界面需要达到以下要求: 系统要有登入和注册两个选项可供选择 系统要能够实现登入出错提示,比如账户密码错误等,用户信息保存在user_info.txt文件夹中 系统要能够进行登入错误次 ...

  5. python做一个登录注册界面_python做一个登录注册界面的方法

    python做一个登录注册界面的方法 发布时间:2020-08-21 10:37:05 来源:亿速云 阅读:111 作者:小新 这篇文章主要介绍python做一个登录注册界面的方法,文中介绍的非常详细 ...

  6. python制作窗口界面_python爬虫如何制作可视化界面?(pyqt5环境配置篇)

    却道天凉好个秋~ pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具 前言: 最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具 ...

  7. python基于web可视化_Python Selenium实现无可视化界面

    有时候我们爬取网页数据,并不希望看其中的过程,只想看到最后的数据结果就可以了,这时候,***面就很有必要了! 代码如下 from selenium import webdriver from time ...

  8. python中gui实现一个登录界面_Python:简单的登陆GUI界面

    import tkinter import sys import re top = tkinter.Tk() top.geometry('400x170+350+150') top.wm_title( ...

  9. python制作qq登录界面_Python制作一个仿QQ办公版的图形登录界面

    最近,QQ的办公版本--TIM进行了一次更新升级.本次更新升级大幅修改了界面的样式,看起来更加的清爽.简洁和高效了. 这种界面州的先生还是比较喜欢的,没有QQ那么花里胡哨,也比微信那些残缺的功能更加丰 ...

最新文章

  1. 8月第1周安全回顾 0Day漏洞成企业最大威胁 应重视网络监听
  2. gatb_core_components
  3. Java并发编程:阻塞队列
  4. 同域内测试蠕虫的一种方法
  5. String是一个很普通的类 - Java那些事儿
  6. VC6解决托盘菜单不消失
  7. 将这五个原则变成习惯,你的开发经验更值钱!
  8. 搭建Jenkins+Sonarqub+Mysql+Android(上篇)
  9. 检测文件是否有BOM 头,并删除BOM头(php)
  10. python 文本处理 保留中英文和标点符号_问一下处理英文文本
  11. sublime ctrl b突然不能用解决方法
  12. java 爬虫 抓取 网易云音乐
  13. python resultful APi
  14. L1-048 矩阵A乘以B
  15. cisco动态路由(OSPF协议)设计计算机网络课设/实验 (含.pkt文件)
  16. 五秒人生:“从上帝到长袜子皮皮”的200个人物传记
  17. signature=d148aa62ed913fffd968a4a920a9a8a3,a01921.html
  18. 【亚马逊运营】几点选品的建议卖家们都注意了吗?
  19. Excel中SMALL函数的使用方法
  20. Rime输入工具的修改与编译安装

热门文章

  1. A Knight‘s Journey(POJ-2488)
  2. PYRIT 强大的密码分析工具(可使用GPU分析)-学习笔记
  3. 高中生参加的计算机奥赛是,电脑奥赛中最寂寥的竞赛 5学生夺牌直通清华
  4. criterial查询
  5. 【tensorrt】——插件写法及python plugin大体流程
  6. 应Oracle BEA定下每股21美元收购价
  7. 小程序动画-循环放大缩小的动画(一闪一闪的)
  8. 尚鼎峰:抖音短视频是如何在几秒钟内吸引用户观看的?
  9. 人工智能入门四件套,你学人工智能避不开的知识点
  10. 深入JUnit源码之Runner