用pyqt写一个当self.rbtn_save方框被选中的时候就保存照片
时间: 2024-05-08 12:18:50 浏览: 162
保存图片
好的,对于这个问题,您需要在PyQt中添加一个RadioButton,当该RadioButton被选中时,触发一个保存照片的函数,可以使用PyQt提供的QFileDialog来实现保存对话框。
下面是可能的解决方案:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QPushButton, QFileDialog
from PyQt5.QtGui import QPixmap
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('Save Photo Example')
self.lbl = QLabel(self)
self.lbl.move(50, 30)
self.lbl.resize(150, 150)
self.rbtn_save = QRadioButton('Save Photo', self)
self.rbtn_save.move(10, 10)
btn_load = QPushButton('Load', self)
btn_load.move(150, 10)
btn_load.clicked.connect(self.showDialog)
self.show()
def showDialog(self):
fname, _ = QFileDialog.getOpenFileName(self, 'Open file', './')
if fname:
pixmap = QPixmap(fname)
self.lbl.setPixmap(pixmap)
def savePhoto(self):
pixmap = self.lbl.pixmap()
if pixmap:
fname, _ = QFileDialog.getSaveFileName(self, 'Save Photo', './',
filter='JPEG (*.jpg *.jpeg);;PNG (*.png);;All Files (*)')
if fname:
pixmap.save(fname, 'JPEG')
def radioChanged(self):
if self.rbtn_save.isChecked():
self.savePhoto()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
ex.rbtn_save.toggled.connect(ex.radioChanged)
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个PyQt的QWidget,并添加了一个QRadioButton和一个QPushButton,在选择文件时打开一个对话框,将所选文件加载到标签中。当QRadioButton被选中时,触发savePhoto函数,该函数会打开一个保存文件对话框,并将图像保存为JPEG格式。最后,我们将radioChanged函数连接到QRadioButton的toggled信号,以在QRadioButton的状态更改时调用该函数。
阅读全文