返回顶部
首页 > 资讯 > 精选 >如何利用PyQt5生成过年春联
  • 249
分享到

如何利用PyQt5生成过年春联

2023-06-28 17:06:15 249人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关如何利用PyQt5生成过年春联,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求说明:通过在界面上输入春联的上、下批和横批汉字从而生成春联图像,最后将春联图片保存。有实际需要的

这篇文章将为大家详细讲解有关如何利用PyQt5生成过年春联,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

需求说明:

通过在界面上输入春联的上、下批和横批汉字从而生成春联图像,最后将春联图片保存。有实际需要的还可以将春联打印。

如何利用PyQt5生成过年春联

如何利用PyQt5生成过年春联

实现过程:

实现思路是先下载好春联的背景图片,再下载每个汉字的文字图片将文字图片粘贴到春联背景上。所以这里有用了一个春联图片的三方获取地址。

Http://xufive.sdysit.com/tk

春联生成部分参考了 CSDN 博客平台。

网络数据获取相关模块

import io  # python IO 处理模块from PIL import Image  # 图像处理模块import requests  # 网络请求模块

UI 相关模块

from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *

主题样式模块引用

from QCandyUi import CandyWindow

应用操作相关模块

import sysimport os

UI界面主要代码展示

 def init_ui(self):        self.setWindowTitle('春联生成器')        self.setWindowIcon(QIcon('春联.ico'))        vbox_main = QVBoxLayout()        self.image_label = QLabel()        self.image_label.setScaledContents(True)        self.image_label.setMaximumSize(650,150)        self.image_label.setPixmap(QPixmap('横批演示.jpg'))        hbox = QHBoxLayout()        self.brower = QTextBrowser()        self.brower.setFont(QFont('宋体', 8))        self.brower.setReadOnly(True)        self.brower.setPlaceholderText('信息展示区域')        self.brower.ensureCursorVisible()        fORM = QFormLayout()        self.up_label = QLabel()        self.up_label.setText('设置上联')        self.up_text = QLineEdit()        self.up_text.setPlaceholderText('请输入上联')        self.down_label = QLabel()        self.down_label.setText('设置下联')        self.down_text = QLineEdit()        self.down_text.setPlaceholderText('请输入下联')        self.h_label = QLabel()        self.h_label.setText('设置横批')        self.h_text = QLineEdit()        self.h_text.setPlaceholderText('请输入横批')        self.thread_ = WorkThread(self)        self.thread_.trigger.connect(self.update_log)        self.thread_.finished.connect(self.finished)        self.save_path = QLineEdit()        self.save_path.setReadOnly(True)        self.save_btn = QPushButton()        self.save_btn.setText('存储路径')        self.save_btn.clicked.connect(self.save_btn_click)        form.addRow(self.up_label, self.up_text)        form.addRow(self.down_label, self.down_text)        form.addRow(self.h_label, self.h_text)        form.addRow(self.save_path, self.save_btn)        vbox = QVBoxLayout()        self.start_btn = QPushButton()        self.start_btn.setText('开始生成春联')        self.start_btn.clicked.connect(self.start_btn_click)        vbox.addLayout(form)        vbox.addWidget(self.start_btn)        hbox.addWidget(self.brower)        hbox.addLayout(vbox)        vbox_main.addWidget(self.image_label)        vbox_main.addLayout(hbox)        self.setLayout(vbox_main)

槽函数的应用

 def update_log(self, text):        '''        槽函数:向文本浏览器中写入内容        :param text:        :return:        '''        cursor = self.brower.textCursor()        cursor.movePosition(QTextCursor.End)        self.brower.append(text)        self.brower.setTextCursor(cursor)        self.brower.ensureCursorVisible()    def save_btn_click(self):        dicr = QFileDialog.getExistingDirectory(self, '选择文件夹', os.getcwd())        self.save_path.setText(dicr)    def start_btn_click(self):        self.start_btn.setEnabled(False)        self.thread_.start()    def finished(self, finished):        if finished is True:            self.start_btn.setEnabled(True)            h_image = self.save_path.text().strip() + '/横批.jpg'            if os.path.isfile(h_image):                self.image_label.setPixmap(QPixmap(h_image))            self.update_log('由于上下联不好预览,请使用图片查看器预览,目前仅支持横批图片预览...')

春联文字获取主题代码

  def run(self):        up_text = self.parent.up_text.text().strip()        down_text = self.parent.down_text.text().strip()        h_text = self.parent.h_text.text().strip()        save_path = self.parent.save_path.text().strip()        if up_text == '' or down_text == '' or h_text == '' or save_path == '':            self.trigger.emit('参数设置不允许为空,请设置好后重新开始!')            self.finished.emit(True)        else:            text = up_text + ' ' + down_text            self.generate_image(text, layout='V', pre=0.75, out_file=save_path + '/上下联.jpg')            self.generate_image(h_text, layout='H', pre=0.75, out_file=save_path + '/横批.jpg')            self.finished.emit(True)

文字图片获取部分

def get_Word_image(self, ch='bg', pre=1.0):        '''        单文字图片下载函数        :param ch: 默认网络请求参数'bg'        :param pre: 单个文字对象        :return: 图像对象        '''        res = io.BytesIO(requests.post(url='http://xufive.sdysit.com/tk', data={'ch': ch}).content)        image = Image.open(res)        w, h = image.size        w, h = int(w * float(pre)), int(h * float(pre))        return image.resize((w, h))  # 单个文字的形状是正方形,所以这里的长、宽都是一致的

效果图

如何利用PyQt5生成过年春联

关于“如何利用PyQt5生成过年春联”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何利用PyQt5生成过年春联

本文链接: https://lsjlt.com/news/321019.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何利用PyQt5生成过年春联
    这篇文章将为大家详细讲解有关如何利用PyQt5生成过年春联,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求说明:通过在界面上输入春联的上、下批和横批汉字从而生成春联图像,最后将春联图片保存。有实际需要的...
    99+
    2023-06-28
  • 利用PyQt5生成过年春联
    需求说明: 通过在界面上输入春联的上、下批和横批汉字从而生成春联图像,最后将春联图片保存。有实际需要的还可以将春联打印。 实现过程: 实现思路是先下载好春联的背景图片,再下载每个...
    99+
    2024-04-02
  • 如何利用Python代码制作过年春联
    这篇文章将为大家详细讲解有关如何利用Python代码制作过年春联,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、春联一1.效果展示2.代码展示index.html<!DOCTYPE ht...
    99+
    2023-06-26
  • 利用Python代码制作过年春联
    目录一、春联一1.效果展示2.代码展示二、春联二1.环境准备2.效果展示3.代码一、春联一 1.效果展示 2.代码展示 index.html <!DOCTYPE html&g...
    99+
    2024-04-02
  • 如何用python编写一个生成春联软件
    目录前言效果展示代码打包exe可执行文件总结前言 最近不是快过年了,Python写对联挺火的,但是代码又不是人人都用,那就直接写个界面打包一下呗~ 主要实现只要运行后输入上联下联、横...
    99+
    2024-04-02
  • QT如何设计一个春联自动生成器
    小编给大家分享一下QT如何设计一个春联自动生成器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 前言春节是中国最隆重的传统节日,一到过年家家户户肯定是要贴春联...
    99+
    2023-06-29
  • 如何利用node生成word文档
    这篇“如何利用node生成word文档”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何利...
    99+
    2024-04-02
  • 如何利用CSS生成Table表格
    本篇内容主要讲解“如何利用CSS生成Table表格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用CSS生成Table表格”吧! ...
    99+
    2024-04-02
  • 如何利用yii2生成二维码
    小编给大家分享一下如何利用yii2生成二维码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!生成二维码的具体步骤如下所示:在官网下载类库在官网下载类库后,确保当前P...
    99+
    2023-06-14
  • 如何利用python生成字符画
    这篇文章将为大家详细讲解有关如何利用python生成字符画,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 python字符画是一个简单有趣的小程序,非常适合初学者进行学(zhuan...
    99+
    2023-06-17
  • 如何利用Python自动生成PPT
    今天小编给大家分享一下如何利用Python自动生成PPT的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在日常工作中,PPT制...
    99+
    2023-07-02
  • 如何在pyqt5中展示pyecharts生成的图像
    这期内容当中小编将会给大家带来有关如何在pyqt5中展示pyecharts生成的图像,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。下面通过一个实际的散点图案例,展示了如何使用pyqt5嵌套一个pyecha...
    99+
    2023-06-26
  • 利用Python如何生成随机密码
    本位实例为大家分享了Python生成随机密码的实现过程,供大家参考,具体内容如下 写了个程序,主要是用来检测MySQL数据库的空密码和弱密码的, 在这里,定义了三类弱密码: 1. 连续数字,譬如123456...
    99+
    2022-06-04
    密码 Python
  • C#如何利用PdfSharp生成Pdf文件
    这篇文章给大家分享的是有关C#如何利用PdfSharp生成Pdf文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PdfSharp一款开源的用于创建,操作PDF文档的.Net类库。PdfSharp下载在本例中,主...
    99+
    2023-06-14
  • Django如何利用LogEntry生成历史操作
    小编给大家分享一下Django如何利用LogEntry生成历史操作,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在开发测试平台的时候,虽然对某些关键功能做了权限设置,但毕竟是公司多人使用,有些数据的配置可能不小心被他人修改...
    99+
    2023-06-22
  • 如何利用Python创建位置生成器
    本篇内容主要讲解“如何利用Python创建位置生成器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用Python创建位置生成器”吧!介绍我们可以通过为包括东京在内的世界各地城市创建合成数据...
    99+
    2023-07-02
  • 如何利用java实现生成PDF文件
    目录1.PDF文件简介2.生成PDF2.1 基于freemarker框架实现HTML转PDF2.1.1 引入jar包依赖:2.1.2 创建html模板test_template:2....
    99+
    2022-11-13
    java生成pdf文档 java生成pdf文件表格 java生成pdf
  • Mysql中如何通过生日计算年龄
    这篇文章主要为大家展示了“Mysql中如何通过生日计算年龄”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mysql中如何通过生日计算年龄”这篇文章吧。方法一SE...
    99+
    2024-04-02
  • 如何在Java中利用POI生成一个带联动下拉框的excel表格
    本篇文章为大家展示了如何在Java中利用POI生成一个带联动下拉框的excel表格,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体代码如下所示:import java.io.File;import...
    99+
    2023-05-31
    java poi excel
  • MySQL如何利用存储过程快速生成100万条数据详解
    前言 在测试的时候为了测试大数据量的情况下项目的抗压能力我们通常要创造一些测试数据那么现在这个方法绝对好用 其中可能会有sql空间的报错可以自己尝试解决,这里做了分批插入,每次插入3...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作