python中Initial函数中的 super
时间: 2023-05-15 14:08:11 浏览: 43
()函数有什么作用?
在Python中,Initial函数是一个类的构造函数,用于初始化对象的属性。super()函数用于调用父类的方法,可以在子类中调用父类的构造函数,从而实现对父类属性的初始化。具体来说,super()函数可以接受两个参数,第一个参数是当前类的类名,第二个参数是当前对象。通过调用super()函数,可以在子类中调用父类的构造函数,从而实现对父类属性的初始化。
相关问题
同步tqdm的进度到pyqt5的QprogressBar中
要实现将tqdm的进度同步到PyQt5的QProgressBar中,可以使用以下步骤:
1. 在PyQt5中创建一个QProgressBar对象,并将其添加到界面中。
2. 在tqdm的循环中使用set_value()方法更新进度条的值,该方法应该被定义为一个函数。
3. 将该函数传递给tqdm的update_callback参数中,以便在每次迭代时调用该函数。
以下是一个示例代码,可以将tqdm的进度同步到PyQt5的QProgressBar中:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QProgressBar
from tqdm import tqdm
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.progress_bar = QProgressBar(self)
self.progress_bar.setGeometry(30, 40, 200, 25)
self.show()
def set_value(self, value):
self.progress_bar.setValue(value)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
for i in tqdm(range(100), desc='Processing', unit='iterations', leave=False, dynamic_ncols=True, file=None, ncols=80, mininterval=0.1, maxinterval=10.0, miniters=None, ascii=None, disable=False, unit_scale=None, unit_divisor=None, gui=False, position=None, postfix=None, initial=None, bar_format=None, smoothing=0.3, bar_update_interval=1):
window.set_value(i)
app.processEvents()
app.exec_()
```
在这个例子中,我们首先定义了一个MainWindow类,它包含一个QProgressBar对象。我们还定义了set_value()方法,以便在每次迭代时更新进度条的值。然后,我们使用tqdm循环来迭代100次,并将set_value()方法传递给update_callback参数中。在循环中,我们还使用app.processEvents()方法来确保进度条在每次迭代时都会更新。
这样,我们就可以将tqdm的进度同步到PyQt5的QProgressBar中了。
将b.py文件中的tqdm的进度同步到a.py文件的PyQt5的QProgressBar中
要将b.py文件中的tqdm的进度同步到a.py文件的PyQt5的QProgressBar中,可以使用以下步骤:
1. 在a.py文件中创建一个窗口类,并在其中包含一个QProgressBar对象。
2. 在b.py文件中,定义一个函数,该函数包含一个tqdm循环。在循环中,使用一个回调函数来更新进度条的值。
3. 在a.py文件中,使用subprocess模块来调用b.py文件,并将回调函数作为命令行参数传递给b.py文件。
以下是一个示例代码,可以将b.py文件中的tqdm的进度同步到a.py文件的PyQt5的QProgressBar中:
a.py文件:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QProgressBar
import sys
import subprocess
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.progress_bar = QProgressBar(self)
self.progress_bar.setGeometry(30, 40, 200, 25)
self.show()
def set_value(self, value):
self.progress_bar.setValue(value)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
cmd = ['python', 'b.py', str(window.set_value)]
process = subprocess.Popen(cmd)
app.exec_()
```
在a.py文件中,我们首先创建了一个MainWindow类,该类包含一个QProgressBar对象。我们还定义了set_value()方法,以便在每次迭代时更新进度条的值。
在if __name__ == '__main__':语句中,我们使用subprocess模块来调用b.py文件。在cmd列表中,我们将回调函数作为命令行参数传递给b.py文件。
b.py文件:
```python
from tqdm import tqdm
import sys
def update_progress(value):
progress_callback = eval(value)
for i in tqdm(range(100), desc='Processing', unit='iterations', leave=False, dynamic_ncols=True, file=None, ncols=80, mininterval=0.1, maxinterval=10.0, miniters=None, ascii=None, disable=False, unit_scale=None, unit_divisor=None, gui=False, position=None, postfix=None, initial=None, bar_format=None, smoothing=0.3, bar_update_interval=1):
progress_callback(i)
if __name__ == '__main__':
update_progress(sys.argv[1])
```
在b.py文件中,我们定义了update_progress()函数,该函数包含了一个tqdm循环。在循环中,我们使用回调函数来更新进度条的值。
如果我们将a.py和b.py文件保存在同一个文件夹中,那么当我们运行a.py文件时,它将会调用b.py文件,并将回调函数作为命令行参数传递给b.py文件。在b.py文件中,我们将回调函数作为字符串进行了解析,并在循环中使用该函数来更新进度条的值。