好友
阅读权限20
听众
最后登录1970-1-1
|
import os, sys
from PIL import Image
from UI import Ui_MainWindow
from PyQt5.QtWidgets import QMainWindow, QFileDialog, QApplication, QMessageBox
class MyMainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.setupUi(self)
# self.setWindowIcon(QIcon())
self._init_ui()
self.save_img_path.setText(os.path.abspath("./"))
def _init_ui(self):
self.setFixedSize(self.width(), self.height())
self.open_jpg.clicked.connect(self.Open_img)
self.openPath.clicked.connect(self.saveImg_Path)
self.save_ico.clicked.connect(self.save_Ico)
def Open_img(self):
ImgFiler = QFileDialog.getOpenFileName(self, "选取图片文件,文件名请使用英文开头", "./", "Img Files(*.jpg *.png)")
ImgPath = str(ImgFiler).split(',')[0].replace('\'', '').replace('(', '')
self.img_path.setText(ImgPath)
# print(ImgPath)
def saveImg_Path(self):
save_Path = QFileDialog.getExistingDirectory(self, "选择保存路径", "./")
self.save_img_path.setText(save_Path)
def save_Ico(self):
# 选择图片
try:
img_name = self.img_path.text().split('/')[-1]
ico_name = img_name.split('.')[0] + '.ico'
print(ico_name)
# 设置size
if self.size16_radioButton.isChecked() == True:
size_ico = (16, 16)
elif self.size32_radioButton.isChecked() == True:
size_ico = (32, 32)
elif self.size64_radioButton.isChecked() == True:
size_ico = (64, 64)
elif self.size128_radioButton.isChecked() == True:
size_ico = (128, 128)
elif self.size256_radioButton.isChecked() == True:
size_ico = (256, 256)
else:
QMessageBox.information(self, "未选择尺寸", "请选择size", QMessageBox.Yes)
im = Image.open(img_name).resize(size_ico)
# 图标文件保存至icon目录
path = os.path.join(self.save_img_path.text(), ico_name)
im.save(path)
# print('{} --> {}'.format(img_name, ico_name))
QMessageBox.information(self, "生成成功", '{} --> {}'.format(img_name, ico_name), QMessageBox.Yes)
except (AttributeError,IOError):
QMessageBox.information(self, "配置错误", "未选择图片或保存路径错误", QMessageBox.Yes)
if __name__ == '__main__':
app = QApplication(sys.argv)
my_wnd = MyMainWindow()
wnd = my_wnd
my_wnd.show()
sys.exit(app.exec_())
UI文件你自己想办法解决吧 大致的功能代码已经写出来了 |
免费评分
-
查看全部评分
|