from component.widget_main.widget_main import Widget_Main from component.widget_channel.widget_channel import Widget_Channel from component.widget_card.widget_card import Widget_Card from component.widget_card.widget_card import CardData from component.widget_filter.audio_filter_componet import AudioFilterWidget from component.widget_filter.audio_filter_model import AudioFilterModel from component.widget_filter.audio_filter_controller import AudioFilterController from param_struct_test.service_manager import ServiceManager from application.application_controller import ApplicationController from datetime import date from PySide6.QtWidgets import QMainWindow, QPushButton, QVBoxLayout from PySide6.QtWidgets import QWidget from PySide6.QtCore import QObject class MainWindow(QWidget): def __init__(self): super().__init__() # 初始化服务 ServiceManager.instance().init_services("127.0.0.1", 1234) # 初始化应用控制器 self.app_controller = ApplicationController.instance() self.widget_main = Widget_Main() self.widget_channel = Widget_Channel() self.widget_card = Widget_Card() # self.widget_main.ui.ListWidget_vLayout.addWidget(self.widget_card) self.widget_main.ui.Channel_hLayout.addWidget(self.widget_channel) self.widget_filter_list = [] self.filter_controllers = [] # 存储控制器实例 # 添加测试按钮 self.test_button = QPushButton("Test Communication") self.test_button.clicked.connect(self.test_communication) self.widget_main.ui.ListWidget_vLayout.addWidget(self.test_button) self.create_filter_widget() self.setup_connections() def create_filter_widget(self): for i in range(24): # 创建widget filter_widget = AudioFilterWidget() filter_widget.set_channel_id(i) filter_widget.set_channel_name(f"Channel {i+1}") # 创建model和controller model = AudioFilterModel(channel_id=i, channel_name=f"Channel {i+1}") controller = AudioFilterController(model) controller.set_widget(filter_widget) # 连接控制器信号 controller.error_occurred.connect(lambda msg: print(f"Error: {msg}")) controller.state_changed.connect(lambda state: print(f"State changed: {state}")) controller.params_synced.connect(lambda: print("Params synced")) # 存储实例 self.widget_filter_list.append(filter_widget) self.filter_controllers.append(controller) def setup_connections(self): print("setup_connections") self.widget_channel.channel_btn_clicked.connect(self.on_channel_btn_clicked) def on_channel_btn_clicked(self, channel_id: int): print(f"channel_id: {channel_id}") self.widget_filter_list[channel_id].show() def test_communication(self): """测试通信功能""" print("Testing communication...") # 测试第一个控制器的通信 if self.filter_controllers: controller = self.filter_controllers[0] # 测试从服务器加载数据 print("Testing load from server...") controller.load_from_server() # 测试同步数据到服务器 print("Testing sync to server...") # controller.sync_to_server() if __name__ == '__main__': import sys from PySide6.QtWidgets import QApplication app = QApplication(sys.argv) main_window = MainWindow() # # 添加测试卡片 # for i in range(1, 11): # data = CardData( # name=f"项目 {i}", # date=date.today().strftime("%Y-%m-%d"), # description=f"这是项目 {i} 的详细描述信息,可以包含多行文本内容。这是一个较长的描述,用于测试换行效果。" # ) # main_window.widget_card.add_card_item(data) main_window.widget_main.show() sys.exit(app.exec())