修改pyinstaller编译后找不到文件的问题
This commit is contained in:
parent
41622cab44
commit
f8feb5f406
@ -66,7 +66,7 @@ class MusicPlayer(QMainWindow):
|
||||
self.control_layout = QHBoxLayout()
|
||||
self.control_layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
self.play_button = QPushButton()
|
||||
self.play_button.setIcon(QIcon("file/play.png"))
|
||||
self.play_button.setIcon(QIcon(self.resource_path("file/play.png")))
|
||||
self.play_button.setIconSize(QSize(52, 52)) # 明确设置图标尺寸
|
||||
self.play_button.setStyleSheet("border: none;")
|
||||
self.play_button.clicked.connect(self.toggle_play_pause)
|
||||
@ -77,6 +77,14 @@ class MusicPlayer(QMainWindow):
|
||||
self.timer = QTimer(self)
|
||||
self.timer.timeout.connect(self.update_lyrics_and_progress)
|
||||
|
||||
def resource_path(self, relative_path):
|
||||
""" 获取资源文件的路径,适配 PyInstaller 打包模式 """
|
||||
if getattr(sys, 'frozen', False):
|
||||
base_path = sys._MEIPASS # PyInstaller 运行时解压目录
|
||||
else:
|
||||
base_path = os.path.dirname(os.path.abspath(__file__)) # 开发模式
|
||||
return os.path.join(base_path, relative_path)
|
||||
|
||||
def set_background_color(self, color):
|
||||
palette = self.palette()
|
||||
palette.setColor(QPalette.ColorRole.Window, QColor(color))
|
||||
@ -84,7 +92,7 @@ class MusicPlayer(QMainWindow):
|
||||
self.central_widget.setStyleSheet(f"background-color: {color};")
|
||||
|
||||
def load_cover(self):
|
||||
cover_path = "file/cover.jpg"
|
||||
cover_path = self.resource_path("file/cover.jpg")
|
||||
if os.path.exists(cover_path):
|
||||
pixmap = QPixmap(cover_path)
|
||||
self.cover_label.setPixmap(pixmap.scaled(256, 256, Qt.AspectRatioMode.KeepAspectRatio))
|
||||
@ -92,7 +100,7 @@ class MusicPlayer(QMainWindow):
|
||||
self.cover_label.setText("封面未找到")
|
||||
|
||||
def load_lyrics(self):
|
||||
lyrics_path = "file/林俊杰-光阴副本.lrc"
|
||||
lyrics_path = self.resource_path("file/林俊杰-光阴副本.lrc")
|
||||
if os.path.exists(lyrics_path):
|
||||
try:
|
||||
with open(lyrics_path, 'r', encoding='utf-8') as file:
|
||||
@ -122,7 +130,7 @@ class MusicPlayer(QMainWindow):
|
||||
self.pause_music()
|
||||
|
||||
def play_music(self):
|
||||
music_path = "file/林俊杰-光阴副本.wav"
|
||||
music_path = self.resource_path("file/林俊杰-光阴副本.wav")
|
||||
if os.path.exists(music_path):
|
||||
try:
|
||||
pygame.mixer.music.load(music_path)
|
||||
@ -131,29 +139,27 @@ class MusicPlayer(QMainWindow):
|
||||
self.start_time = time.time()
|
||||
self.pause_time = 0
|
||||
self.timer.start(500)
|
||||
self.play_button.setIcon(QIcon("file/pause.png"))
|
||||
self.play_button.setIcon(QIcon(self.resource_path("file/pause.png")))
|
||||
self.is_playing = True
|
||||
except Exception as e:
|
||||
print("播放音乐时出错:", e)
|
||||
else:
|
||||
print("音乐文件未找到:", music_path)
|
||||
pass
|
||||
|
||||
def resume_music(self):
|
||||
try:
|
||||
pygame.mixer.music.unpause() # 直接恢复播放
|
||||
self.start_time = time.time() - self.pause_time
|
||||
self.timer.start(500)
|
||||
self.play_button.setIcon(QIcon("file/pause.png"))
|
||||
self.play_button.setIcon(QIcon(self.resource_path("file/pause.png")))
|
||||
self.is_playing = True
|
||||
except Exception as e:
|
||||
print("继续播放时出错:", e)
|
||||
pass
|
||||
|
||||
def pause_music(self):
|
||||
if self.is_playing:
|
||||
self.pause_time = time.time() - self.start_time
|
||||
pygame.mixer.music.pause()
|
||||
self.timer.stop()
|
||||
self.play_button.setIcon(QIcon("file/play.png"))
|
||||
self.play_button.setIcon(QIcon(self.resource_path("file/play.png")))
|
||||
self.is_playing = False
|
||||
|
||||
def seek_music(self):
|
||||
@ -165,7 +171,7 @@ class MusicPlayer(QMainWindow):
|
||||
self.current_lyric_index = self.find_lyric_index(new_time)
|
||||
self.update_lyrics_display()
|
||||
self.timer.start(500)
|
||||
self.play_button.setIcon(QIcon("file/pause.png"))
|
||||
self.play_button.setIcon(QIcon(self.resource_path("file/pause.png")))
|
||||
self.is_playing = True
|
||||
|
||||
def find_lyric_index(self, current_time):
|
||||
|
Loading…
x
Reference in New Issue
Block a user