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、ラベルを -680*0 に移動
#index=1、ラベルを -680*1 に移動
#index=2 、ラベルを -680*2
#index=3 に移動、ラベルを -680*3
self.setLabelMove(False)
self.current_pos_x = self.total_label.x () #Currentラベル座標
self.dest_pos_x = -WINDOW_WIDTH * self.current_index #ターゲット X 座標
if(方向):
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_())

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









360safe は 360 Security Guard のインストール フォルダであり、360 Security Guard の関連キャッシュ ファイルが含まれています。360safe の内容を削除すると、360 Security Guard の通常の動作に影響を与える可能性があります。また、360 Security Guard は他のディスクに移動できません。インストールされているバージョンはレジストリに登録されています。別のディスクに移動すると、360 を起動できなくなります。アンインストールしてから、パスを再選択して別のディスクにインストールする必要があります。

ルー先生は360出身です。 「Master Lu」は、ハードウェアレベルのプロフェッショナルツールソフトウェアです。2010 年 9 月 6 日、「Master Lu」は 360 の「Free Software Takeoff Plan」に参加することを発表し、プラン開始以来新たに受け入れられた新しいメンバーになりました。 、360の商品になりました。

360 フォルダーへのアクセスが拒否された場合の解決策: 1. 360 フォルダーのアクセス許可を確認し、属性設定を確認して、読み取り可能に設定します; 2. 360 フォルダー内のすべてのファイルをチェックして、損傷がないことを確認します; 3. 360 フォルダーにチェックを入れて各ファイルのアクセス許可を許可します; 4. 360 フォルダーを再認証し、アクセスできるように設定します。

360 コンピューターのロック画面の壁紙をオフにする方法: 1. 360 ブラウザを開き、右上隅にある 3 つの水平アイコンをクリックし、[設定] をクリックします; 2. [研究室] カテゴリを見つけてクリックします。設定ページの写真機能のチェックを外すと、パソコンのロック画面の壁紙をオフにできます。

360 隔離されたファイルを回復する方法: 1. 360 Security Guard を開いて [トロイの木馬の検出] をクリックします; 2. トロイの木馬の検出ページの左下隅にある [回復領域] をクリックして開きます; 3. 回復領域のページで、復元するファイル そして、「復元」をクリックします; 4. 「復元」をクリックして、復元ウィンドウを確認します。

相違点: 1. 主な機能が異なります。360 セキュリティ ガードはトロイの木馬の駆除、ユーザーのコンピュータ アカウントの確保、ゴミのクリーンアップと高速化の最適化に重点を置いているのに対し、360 アンチウイルス ソフトウェアはウイルス対策に特化しています。 2. 360 Security Guard には完全な自己保護機能がありますが、360 ウイルス対策ソフトウェアには完全な自己保護機能がないため、360 Security Guard の自己保護機能に依存する必要があります。 3. 360 Security Guard は独自のエンジンを使用しますが、360 Antivirus ソフトウェアには独自のエンジンと他の国の 2 つのエンジン (Bitdefender と Avira) があります。

360 インターセプトを削除する方法: 1. 360 Security Guard を開いて [セキュリティ保護センター] をクリックします; 2. [保護に入る] ボタンをクリックします; 3. [信頼してブロック] をクリックします; 4. [ブロックされたエリア] に切り替えます; 5. [保護に入る] ボタンをクリックします。 5. [削除] ボタンをクリックします; 6. 削除する場合は [確認] ボタンをクリックします。

360wifi が接続できない理由と解決策: 1. ネットワーク回線の緩み、接続エラー、損傷が原因であるため、ブロードバンド接続回線を確認する必要があります; 2. ネットワーク カードの障害が原因である場合は、ネットワーク カードを再起動する必要があります; 3. 原因ネットワークカードの設定が間違っている場合は、モデムの設定を確認してデフォルト設定に戻す必要があります; 4. 光モデムに障害が発生した場合は、綿棒を使用して光ファイバテールプラグの頭を拭く必要があります。汚れがなければ、光モデムに再度挿入します。
