def __init__(self, app): super().__init__(parent=None) self._app = app self._left_con = LeftCon(self) #: left container self._left_con_scrollarea = ScrollArea(self._app) self._left_con_scrollarea.setWidget(self._left_con) self._right_con = RightCon(self) self._left_layout = QVBoxLayout(self._left_con) self._left_h1_layout = QHBoxLayout() self._left_h2_layout = QHBoxLayout() self._right_layout = QVBoxLayout(self._right_con) self.header_label = HeaderLabel() self.lyric_header = HeaderLabel('<h3>歌词:</h3>') self.comments_header = HeaderLabel('<h2>热门评论</h2>') self.lyric_label = LyricLabel() self.play_btn = TextButton('播放') self.cover_label = CoverLabelV2(app=app) self.album_info_label = SongAlbumLabel(app) self.comments_view = CommentListView() self._lyric_scrollarea = ScrollArea(self._app) self._lyric_scrollarea.setWidget(self.lyric_label) self.lyric_label.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) self.header_label.setTextFormat(Qt.RichText) self.cover_label.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) self._layout = QHBoxLayout(self) self._setup_ui()
def __init__(self, app, parent=None): super().__init__(parent) self._app = app self._renderer = None self._table = None # current visible table self._tables = [] self._extra = None self.toolbar = SongsTableToolbar() self.tabbar = TableTabBarV2() self.meta_widget = TableMetaWidget(parent=self) self.songs_table = SongsTableView(parent=self) self.albums_table = AlbumListView(parent=self) self.artists_table = ArtistListView(parent=self) self.videos_table = VideoListView(parent=self) self.playlists_table = PlaylistListView(parent=self) self.comments_table = CommentListView(parent=self) self.desc_widget = DescLabel(parent=self) self._tables.append(self.songs_table) self._tables.append(self.albums_table) self._tables.append(self.artists_table) self._tables.append(self.playlists_table) self._tables.append(self.videos_table) self._tables.append(self.comments_table) self.songs_table.play_song_needed.connect( lambda song: aio.run_afn(self.play_song, song)) self.videos_table.play_video_needed.connect( self._app.playlist.play_model) def goto_model(model): self._app.browser.goto(model=model) for signal in [ self.songs_table.show_artist_needed, self.songs_table.show_album_needed, self.albums_table.show_album_needed, self.artists_table.show_artist_needed, self.playlists_table.show_playlist_needed, ]: signal.connect(goto_model) self.toolbar.play_all_needed.connect( lambda: aio.run_afn(self.play_all)) self.songs_table.add_to_playlist_needed.connect( self._add_songs_to_playlist) self.songs_table.about_to_show_menu.connect( self._songs_table_about_to_show_menu) self.songs_table.activated.connect(lambda index: aio.create_task( self._on_songs_table_activated(index))) self._setup_ui()