最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)360的字符顯示界面

 更新時間:2014年02月21日 16:09:22   作者:  
這篇文章主要介紹了python實現(xiàn)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()] #存儲圖片的數(shù)組

  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() #當前l(fā)abel坐標
  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 = enable

if __name__ == '__main__':
 import sys
 app = QApplication(sys.argv)
 Character = CharacterWidget()
 Character.show()
 sys.exit(app.exec_())

相關文章

  • 解決pytorch中的kl divergence計算問題

    解決pytorch中的kl divergence計算問題

    這篇文章主要介紹了解決pytorch中的kl divergence計算問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Spectral?clustering譜聚類算法的實現(xiàn)代碼

    Spectral?clustering譜聚類算法的實現(xiàn)代碼

    譜聚類是從圖論中演化出來的算法,它的主要思想是把所有的數(shù)據(jù)看做空間中的點,這些點之間可以用邊連接起來,今天通過本文給大家介紹Spectral?clustering譜聚類算法的實現(xiàn),感興趣的朋友一起看看吧
    2022-04-04
  • 淺談Python處理PDF的方法

    淺談Python處理PDF的方法

    這篇文章主要介紹了Python處理PDF的兩種方法代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 通過 Django Pagination 實現(xiàn)簡單分頁功能

    通過 Django Pagination 實現(xiàn)簡單分頁功能

    這篇文章主要介紹了通過 Django Pagination 實現(xiàn)簡單分頁功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • python多線程調用exit無法退出的解決方法

    python多線程調用exit無法退出的解決方法

    今天小編就為大家分享一篇python多線程調用exit無法退出的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 基于Python編寫復雜密碼圖形化生成工具

    基于Python編寫復雜密碼圖形化生成工具

    這篇文章主要為大家詳細介紹了如何基于Python編寫復雜密碼圖形化生成工具,支持選擇生成10位和12位復雜密碼,需要的小伙伴可以參考一下
    2024-04-04
  • Python中弱引用的神奇用法與原理詳解

    Python中弱引用的神奇用法與原理詳解

    弱引用在很多語言中都存在,最常用來解決循環(huán)引用問題,下面這篇文章主要給大家介紹了關于Python中弱引用的神奇用法與原理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • python 使用pandas計算累積求和的方法

    python 使用pandas計算累積求和的方法

    今天小編就為大家分享一篇python 使用pandas計算累積求和的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python中return用法案例詳解

    Python中return用法案例詳解

    這篇文章主要介紹了Python中return用法案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • Python下利用BeautifulSoup解析HTML的實現(xiàn)

    Python下利用BeautifulSoup解析HTML的實現(xiàn)

    這篇文章主要介紹了Python下利用BeautifulSoup解析HTML的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01

最新評論

平江县| 剑阁县| 远安县| 玉环县| 莱芜市| 阜南县| 邢台县| 历史| 雅江县| 沁水县| 凤翔县| 高淳县| 泾川县| 廉江市| 高要市| 晋江市| 朝阳市| 玛多县| 新建县| 随州市| 温泉县| 五河县| 广昌县| 西青区| 长顺县| 贵南县| 九龙城区| 登封市| 阜城县| 封开县| 万盛区| 彩票| 如东县| 黔江区| 武宁县| 团风县| 达尔| 高密市| 那坡县| 浮梁县| 永丰县|