diff --git a/core/http_file_server.py b/core/http_file_server.py index 0a18045..355bc97 100644 --- a/core/http_file_server.py +++ b/core/http_file_server.py @@ -617,8 +617,7 @@ class StreamingFileServer: class HTTPFileServer(StreamingFileServer): """高级流式服务器,支持更多功能""" - def __init__(self, port: int = 8000, bind_address: str = "0.0.0.0", - max_chunk_size: int = 1024 * 256): # 256KB + def __init__(self, port: int = 8000, bind_address: str = "0.0.0.0", max_chunk_size: int = 1024 * 256): # 256KB """ 初始化高级流式服务器 diff --git a/ui/main_window.py b/ui/main_window.py index 76792cc..e3e49ec 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -140,11 +140,6 @@ class MainWindow(QMainWindow): color: white; background-color: #6c757d; } - QPushButton:disabled { - color: #999; - background-color: #f5f5f5; - } - /* 特殊按钮样式 */ #browseBtn{ background:white; @@ -175,6 +170,14 @@ class MainWindow(QMainWindow): color: white; border: none; } + #startCastBtn:disabled, + #pauseCastBtn:disabled, + #stopCastBtn:disabled{ + color: #999 !important; + background-color: #f5f5f5 !important; + } + + /*音量图标*/ #muteBtn{ background-color:none; @@ -297,7 +300,7 @@ class MainWindow(QMainWindow): # 设备列表标题和刷新按钮 device_header = QHBoxLayout() - device_header.addWidget(QLabel("可用设备列表:")) + device_header.addWidget(QLabel("设备列表(单击选中):")) device_header.addStretch() device_layout.addLayout(device_header) @@ -322,6 +325,7 @@ class MainWindow(QMainWindow): self.start_btn = QPushButton("开始投屏") self.start_btn.setObjectName("startCastBtn") self.start_btn.setCursor(Qt.PointingHandCursor) + self.start_btn.setEnabled(False) self.start_btn.clicked.connect(self.start_casting) self.pause_btn = QPushButton("暂停投屏") @@ -360,6 +364,7 @@ class MainWindow(QMainWindow): self.mute_btn.setCheckable(True) self.mute_btn.setFixedWidth(40) self.mute_btn.setObjectName("muteBtn") + self.mute_btn.setCursor(Qt.PointingHandCursor) self.mute_btn.clicked.connect(self.toggle_mute) volume_layout.addWidget(self.mute_btn) @@ -648,6 +653,7 @@ class MainWindow(QMainWindow): self.log_message("设备选择", f"已选择设备: {device.get('friendly_name', '未知')}") # 启用控制按钮 + self.start_btn.setText("开始投屏") self.enable_control_buttons(True) def browse_file(self): @@ -673,7 +679,7 @@ class MainWindow(QMainWindow): file_name = os.path.basename(self.selected_file) self.file_label.setText(file_name) #选择文件后启用播放按钮 - self.start_btn.setEnabled(True) + self.enable_control_buttons(True) self.log_message("文件选择", f"已选择文件: {file_name}") def start_casting(self): @@ -730,6 +736,8 @@ class MainWindow(QMainWindow): # 需要重新设置URI file_name = os.path.basename(self.selected_file) ip_text = self.ip_label.text() + dir_bool = self.http_server.set_root_directory(self.selected_file) + self.log_message("设置服务路径", "成功" if dir_bool else "失败") file_url = f"http://{ip_text}/{file_name}" if self.dlna_controller.set_av_transport_uri(file_url): @@ -753,7 +761,7 @@ class MainWindow(QMainWindow): if self.dlna_controller.pause(): self.is_paused = True # 标记为暂停状态 - self.start_btn.setText("▶ 继续播放") + self.start_btn.setText("继续播放") self.start_btn.setEnabled(True) self.pause_btn.setEnabled(False) @@ -765,7 +773,7 @@ class MainWindow(QMainWindow): if self.dlna_controller.stop(): self.is_paused = False # 重置暂停状态 - self.start_btn.setText("▶ 开始投屏") + self.start_btn.setText("开始投屏") self.start_btn.setEnabled(True) self.pause_btn.setEnabled(False) self.stop_btn.setEnabled(False) @@ -819,10 +827,12 @@ class MainWindow(QMainWindow): def enable_control_buttons(self, enabled): """启用/禁用控制按钮""" - self.pause_btn.setEnabled(False) - self.stop_btn.setEnabled(False) - self.volume_slider.setEnabled(enabled) - self.mute_btn.setEnabled(enabled) + if self.selected_device and self.selected_file: + self.start_btn.setEnabled(True) + self.pause_btn.setEnabled(False) + self.stop_btn.setEnabled(False) + self.volume_slider.setEnabled(enabled) + self.mute_btn.setEnabled(enabled) def closeEvent(self, event): """窗口关闭事件"""