我需要当我将鼠标悬停在“开始”按钮上时,图片会变为另一张(我将在下面附上)。
图片:
第二:
我的代码:
import sys
from PyQt5 import QtWidgets, QtGui, QtCore, QtMultimedia
from PyQt5.Qt import *
russia_language = True
try:
from PyQt5.QtWinExtras import QtWin
myappid = 'mycompany.myproduct.subproduct.version'
QtWin.setCurrentProcessExplicitAppUserModelID(myappid)
except ImportError:
pass
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
filename = 'music.mp3'
fullpath = QtCore.QDir.current().absoluteFilePath(filename)
url = QtCore.QUrl.fromLocalFile(fullpath)
content = QtMultimedia.QMediaContent(url)
self.player = QtMultimedia.QMediaPlayer()
self.player.setMedia(content)
self.player.setVolume(50)
self.player.play()
self.slider = QSlider(Qt.Horizontal, self)
self.slider.setRange(0, 100)
self.slider.setValue(50)
self.slider.setGeometry(800, 620, 300, 70)
self.slider.hide()
self.slider.valueChanged.connect(self.player.setVolume)
def Button(btn_name, text, color1, px, resize, resize_2, move, move_2, color, mains):
btn_name.setMouseTracking(True);
btn_name.setText(text)
btn_name.setStyleSheet(
"background-color: " + color1 + "; color: " + color + "; border-radius: " + str(px) + "px")
btn_name.setFont(QtGui.QFont('MS Serif', 14))
btn_name.resize(resize, resize_2)
btn_name.move(move, move_2)
btn_name.clicked.connect(mains)
def Button_2(btn_name, text, px, resize, resize_2, move, move_2, color, size):
btn_name.setMouseTracking(True);
btn_name.setText(text)
btn_name.setStyleSheet(
"color: " + color + "; border-radius: " + str(px) + "px")
btn_name.setFont(QtGui.QFont('Pusia-Bold.otf', size))
btn_name.resize(resize, resize_2)
btn_name.move(move, move_2)
# btn_name.clicked.connect(mains)
def Button_3(btn_name, text, px, resize, resize_2, move, move_2, color, mains):
btn_name.setMouseTracking(True);
if text == "Настройки громкости":
btn_name.setCheckable(True)
btn_name.setText(f'{text}: ({self.slider.value()})')
else:
btn_name.setText(text)
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
btn_name.setStyleSheet(
"color: " + color + "; border-radius: " + str(px) + "px")
btn_name.setFont(QtGui.QFont('MS Serif', 14))
btn_name.resize(resize, resize_2)
btn_name.move(move, move_2)
btn_name.clicked.connect(mains)
def Image(lbl_name, move_1, move_2, resize_1, resize_2):
lbl_name.setPixmap(self.pix)
lbl_name.move(move_1, move_2)
lbl_name.resize(resize_1, resize_2)
self.lbl2 = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("image.jpg")
Image(self.lbl2, 0, 0, 1920, 1080)
self.lbl1 = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("System_image/textbox.png")
Image(self.lbl1, 0, 800, 1920, 300)
self.btn1 = QPushButton(self)
Button_2(self.btn1, "Вы появились в неизвестном вам месте,\nгде было невероятно красиво", 10, 1400, 200, 260, 830, "White", 30)
self.inv = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("Button_image/inventory_btn.png")
Image(self.inv, -30, 600, 156, 96)
self.btn31 = QPushButton(self)
Button_3(self.btn31, "", 0, 100, 100, 0, 600, "White", self.inventory)
self.inv_open = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("Button_image/inventory.png")
Image(self.inv_open, 70, 40, 1770, 996)
self.inv_open.close()
self.btn4 = QPushButton(self)
Button_3(self.btn4, "", 5, 100, 100, 1650, 110, "White", self.inventory_close)
self.btn4.close()
self.lbl20 = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("System_image/Selection_menu.png")
Image(self.lbl20, 0, 0, 1920, 1080)
self.lbl20.close()
self.mg_open = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("Button_image/Magazine.png")
Image(self.mg_open, -30, 480, 156, 96)
self.btn5 = QPushButton(self)
Button_3(self.btn5, "", 0, 100, 100, 0, 480, "White", self.event_log)
self.btn6 = QPushButton(self)
Button_3(self.btn6, "", 0, 460, 800, 160, 170, "White", self.notes)
self.btn6.close()
self.btn7 = QPushButton(self)
Button_3(self.btn7, "", 0, 460, 800, 700, 170, "White", self.easter)
self.btn7.close()
self.btn8 = QPushButton(self)
Button_3(self.btn8, "", 0, 460, 800, 1260, 170, "White", self.tasks)
self.btn8.close()
self.notes_open = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("The_event_log/Notes.png")
Image(self.notes_open, 0, 0, 1920, 1080)
self.notes_open.close()
self.btn9 = QPushButton(self)
Button_3(self.btn9, "", 5, 80, 80, 1730, 50, "White", self.inventory_close)
self.btn9.close()
self.easter_open = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("The_event_log/Easter.png")
Image(self.easter_open, 0, 0, 1920, 1080)
self.easter_open.close()
self.btn10 = QPushButton(self)
Button_3(self.btn10, "", 5, 80, 80, 1730, 50, "White", self.inventory_close)
self.btn10.close()
self.tasks_open = QtWidgets.QLabel(self)
self.pix = QtGui.QPixmap("The_event_log/Tasks.png")
Image(self.tasks_open, 0, 0, 1920, 1080)
self.tasks_open.close()
self.btn11 = QPushButton(self)
Button_3(self.btn11, "", 5, 80, 80, 1730, 50, "White", self.inventory_close)
self.btn11.close()
self.lbl2.close()
self.btn31.close()
self.btn1.close()
self.lbl1.close()
self.inv.close()
self.mg_open.close()
self.btn5.close()
self.btn6.close()
self.btn_start = QPushButton(self)
Button_3(self.btn_start, "Начать", 20, 300, 100, 800, 400, "Black", self.start)
# !!!
self.btn_select = QPushButton(self)
Button_3(self.btn_select, "Настройки громкости", 20, 500, 100, 710, 520, "Black", self.volume_custom)
def inventory(self):
self.btn31.close()
self.btn1.close()
self.lbl1.close()
self.inv.close()
self.inv_open.show()
self.btn4.show()
self.mg_open.close()
self.btn5.close()
self.btn6.close()
def inventory_close(self):
self.btn1.show()
self.lbl1.show()
self.inv.show()
self.inv_open.close()
self.btn4.close()
self.notes_open.close()
self.btn9.close()
self.mg_open.show()
self.btn5.show()
self.btn6.close()
self.btn7.close()
self.btn8.close()
self.easter_open.close()
self.btn10.close()
self.btn11.close()
self.tasks_open.close()
self.btn31.show()
def animations(self):
animation = QPropertyAnimation(self)
animation.setTargetObject(self.btn_name)
animation.setPropertyName(b'pos')
animation.setStartValue(QPoint(250, -200))
animation.setEndValue(QPoint(250, 0))
animation.setDuration(500)
animation.start()
def event_log(self):
self.btn31.close()
self.btn1.close()
self.lbl1.close()
self.inv.close()
self.btn5.close()
self.mg_open.close()
self.lbl20.show()
self.btn6.show()
self.btn7.show()
self.btn8.show()
def notes(self):
self.lbl20.close()
self.notes_open.show()
self.btn9.show()
self.btn6.close()
self.btn7.close()
self.btn8.close()
def easter(self):
self.lbl20.close()
self.easter_open.show()
self.btn10.show()
self.btn6.close()
self.btn7.close()
self.btn8.close()
def tasks(self):
self.lbl20.close()
self.tasks_open.show()
self.btn11.show()
self.btn6.close()
self.btn7.close()
self.btn8.close()
# !!!
def start(self):
self.btn1.show()
self.lbl1.show()
self.inv.show()
self.inv_open.close()
self.btn4.close()
self.notes_open.close()
self.btn9.close()
self.mg_open.show()
self.btn5.show()
self.btn6.close()
self.btn7.close()
self.btn8.close()
self.easter_open.close()
self.btn10.close()
self.btn11.close()
self.tasks_open.close()
self.btn31.show()
self.lbl2.show()
self.slider.close()
self.btn_select.close()
self.btn_start.close()
# !!!
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def volume_custom(self):
# тут действие, но я поставил print что бы не выдавал ошибку
sender = self.sender()
print(f'def volume_custom(): {sender.text()} - {sender.isChecked()}')
if sender.isChecked():
self.slider.show()
else:
self.slider.close()
sender.setText(f'Настройки громкости: ({self.slider.value()})')
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
app.setWindowIcon(QtGui.QIcon('System_image/icon.png'))
ex = MainWindow()
ex.setWindowTitle('Story Telling')
ex.setWindowIcon(QIcon('System_image/icon.png'))
ex.showFullScreen()
ex.show()
sys.exit(app.exec_())
创建一个子类
并覆盖其中的方法