MCPcopy
hub / github.com/PyQt5/PyQt / Window

Class Window

QFlowLayout/HotPlaylist.py:129–171  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

HotPlaylist.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected