self.progressBar = QtWidgets.QProgressBar(self.centralwidget) self.progressBar.setGeometry(QtCore.QRect(540, 690, 481, 21)) self.progressBar.setProperty("value", 24) self.progressBar.setObjectName("progressBar")
时间: 2024-04-13 16:28:17 浏览: 198
根据你提供的代码,你是在使用Qt的Python库进行GUI开发,创建一个名为`progressBar`的进度条控件。根据代码中的设置,进度条的初始值被设置为24。
如果你想要修改进度条的值,可以使用`setValue()`方法。例如,要将进度条的值设置为50,可以使用以下代码:
```python
self.progressBar.setValue(50)
```
你可以将这行代码插入到你的程序中适当的位置,以达到你想要的效果。如果你有其他关于进度条或GUI开发的问题,请继续提问。
相关问题
label.setMinimumSize(label.sizeHint()) self.Compare.scrollArea_2.setStyleSheet("QScrollBar:horizontal { width: 20px; }") self.Compare.scrollArea_2.setWidgetResizable(True) self.Compare.scrollArea_2.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)进度条不显示
根据你提供的代码,进度条可能没有被正确添加到滚动区域中。可以尝试在代码中添加以下内容,将进度条添加到滚动区域中:
```
progressBar = QProgressBar()
self.Compare.scrollArea_2.setWidget(progressBar)
```
其中,`QProgressBar()` 创建了一个进度条对象,`self.Compare.scrollArea_2.setWidget(progressBar)` 将进度条添加到滚动区域中。
另外,你也可以尝试调整进度条的样式和位置,例如:
```
progressBar.setStyleSheet("QProgressBar {border: 2px solid grey; border-radius: 5px; padding: 1px; background-color: white;}")
progressBar.setMinimumSize(30, 10)
self.Compare.scrollArea_2.setStyleSheet("QScrollBar:horizontal { width: 20px; } QProgressBar {border: 2px solid grey; border-radius: 5px; padding: 1px; background-color: white;}")
```
其中,`setStyleSheet` 方法可以设置进度条的样式,`setMinimumSize` 方法可以设置进度条的最小大小。
imageName = re.findall('[^/]+$', self.fileName[0]) name, _ = str(imageName[0]).split('.') FOM_Module = hub.Module(name="first_order_motion") FOM_Module.generate(source_image="{}".format(self.fileName[0]), # 输入图像 driving_video="{}".format(self.fileName[1]), # 输入驱动视频 ratio=0.4, image_size=256, output_dir=f'{self.output_dir}/', # 输出文件夹 filename=f'{name}.mp4', # 输出文件名 use_gpu=False)用pyqt5的进度条实时显示进度实时
要实时显示进度,可以在函数内添加一个信号(signal),用于发送进度条的当前值。然后在主程序中连接这个信号到一个槽(slot),用于更新进度条的值。
以下是一个可能的实现:
```python
from PyQt5.QtCore import QObject, pyqtSignal
class FOMWorker(QObject):
progressChanged = pyqtSignal(int) # 定义一个信号
def run(self):
imageName = re.findall('[^/]+$', self.fileName[0])
name, _ = str(imageName[0]).split('.')
FOM_Module = hub.Module(name="first_order_motion")
FOM_Module.generate(source_image="{}".format(self.fileName[0]),
driving_video="{}".format(self.fileName[1]),
ratio=0.4,
image_size=256,
output_dir=f'{self.output_dir}/',
filename=f'{name}.mp4',
use_gpu=False)
# 发送进度条当前值,最大值为 100
self.progressChanged.emit(100)
class MyWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.progressBar = QtWidgets.QProgressBar(self) # 创建进度条
self.setCentralWidget(self.progressBar)
self.worker = FOMWorker()
self.worker.progressChanged.connect(self.updateProgress) # 连接信号和槽
self.thread = QtCore.QThread()
self.worker.moveToThread(self.thread)
self.thread.started.connect(self.worker.run)
self.thread.start()
def updateProgress(self, value):
self.progressBar.setValue(value) # 更新进度条的值
```
在主程序中,我们创建了一个 `FOMWorker` 类,其中包含一个 `run` 函数,用于执行 FOM 的生成过程,并发送进度条当前值。在主程序中,我们创建了一个 `MyWindow` 类,其中包含一个进度条 `progressBar`,并将 `FOMWorker` 实例化为 `worker`,将它移到一个新的线程 `thread` 中运行。然后,我们连接 `FOMWorker` 的 `progressChanged` 信号到 `MyWindow` 的 `updateProgress` 槽,用于更新进度条的值。当 `thread` 启动时,会自动执行 `worker.run()` 函数。
阅读全文