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 datetime import date from PySide6.QtWidgets import QMainWindow from PySide6.QtWidgets import QWidget from PySide6.QtCore import QObject class MainWindow(QWidget): def __init__(self): super().__init__() 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.create_filter_widget() self.setup_connections() def create_filter_widget(self): for i in range(24): filter_widget = AudioFilterWidget() filter_widget.set_channel_id(i) filter_widget.set_channel_name(f"Channel {i+1}") self.widget_filter_list.append(filter_widget) 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() 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())