MCPcopy Create free account
hub / github.com/PyQt5/PyQt / Window

Class Window

QGridLayout/HotPlaylist.py:146–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144
145
146class Window(QScrollArea):
147
148 def __init__(self, *args, **kwargs):
149 super(Window, self).__init__(*args, **kwargs)
150 self.resize(800, 600)
151 self.setFrameShape(self.NoFrame)
152 self.setWidgetResizable(True)
153 self.setAlignment(Qt.AlignCenter)
154 self._loadStart = False
155 # 网格窗口
156 self._widget = GridWidget(self)
157 self._widget.loadStarted.connect(self.setLoadStarted)
158 self.setWidget(self._widget)
159 # 连接竖着的滚动条滚动事件
160 self.verticalScrollBar().actionTriggered.connect(self.onActionTriggered)
161 # 进度条
162 self.loadWidget = QSvgWidget(self,
163 minimumHeight=120,
164 minimumWidth=120,
165 visible=False)
166 self.loadWidget.load('Data/Svg_icon_loading.svg')
167
168 def setLoadStarted(self, started):
169 self._loadStart = started
170 self.loadWidget.setVisible(started)
171
172 def onActionTriggered(self, action):
173 # 这里要判断action=QAbstractSlider.SliderMove,可以避免窗口大小改变的问题
174 # 同时防止多次加载同一个url
175 if action != QAbstractSlider.SliderMove or self._loadStart:
176 return
177 # 使用sliderPosition获取值可以同时满足鼠标滑动和拖动判断
178 if self.verticalScrollBar().sliderPosition() == self.verticalScrollBar(
179 ).maximum():
180 # 可以下一页了
181 self._widget.load()
182
183 def resizeEvent(self, event):
184 super(Window, self).resizeEvent(event)
185 self.loadWidget.setGeometry(
186 int((self.width() - self.loadWidget.minimumWidth()) / 2),
187 int((self.height() - self.loadWidget.minimumHeight()) / 2),
188 self.loadWidget.minimumWidth(), self.loadWidget.minimumHeight())
189
190
191if __name__ == "__main__":

Callers 1

HotPlaylist.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected