首页 > 其他分享 >【pyqt】pyqt写一个工具 实现base64编码,解码

【pyqt】pyqt写一个工具 实现base64编码,解码

时间:2025-01-15 22:45:17浏览次数:1  
标签:text 解码 base64 pyqt result 按钮 button input self

解决思路:

使用 QSS(Qt Style Sheets)对 PyQt 控件的样式进行定制。

为不同的控件添加不同的样式,如背景颜色、字体、边框等。

修改后的代码:

import sys
import base64
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QTextEdit, QPushButton, QLineEdit, QMessageBox


class Base64Tool(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 创建布局
        vbox = QVBoxLayout()
        self.input_text = QTextEdit()
        self.result_text = QTextEdit()
        self.result_text.setReadOnly(True)

        # 编码按钮
        encode_button = QPushButton('Encode')
        encode_button.clicked.connect(self.encode)
        # 解码按钮
        decode_button = QPushButton('Decode')
        decode_button.clicked.connect(self.decode)
        # 复制按钮
        copy_button = QPushButton('Copy Result')
        copy_button.clicked.connect(self.copy_result)

        # 水平布局用于放置按钮
        hbox = QHBoxLayout()
        hbox.addWidget(encode_button)
        hbox.addWidget(decode_button)
        hbox.addWidget(copy_button)

        vbox.addWidget(self.input_text)
        vbox.addLayout(hbox)
        vbox.addWidget(self.result_text)

        self.setLayout(vbox)
        self.setWindowTitle('Base64 Tool')
        # 应用样式表
        self.setStyleSheet(self.get_stylesheet())
        self.show()

    def encode(self):
        input_data = self.input_text.toPlainText()
        try:
            encoded_data = base64.b64encode(input_data.encode()).decode()
            self.result_text.setText(encoded_data)
        except Exception as e:
            QMessageBox.critical(self, "Error", str(e))

    def decode(self):
        input_data = self.input_text.toPlainText()
        try:
            decoded_data = base64.b64decode(input_data.encode()).decode()
            self.result_text.setText(decoded_data)
        except Exception as e:
            QMessageBox.critical(self, "Error", str(e))

    def copy_result(self):
        result = self.result_text.toPlainText()
        clipboard = QApplication.clipboard()
        clipboard.setText(result)

    def get_stylesheet(self):
        return """
        QWidget {
            background-color: #f0f0f0;
        }
        QTextEdit {
            background-color: white;
            border: 2px solid #ccc;
            border-radius: 5px;
            padding: 5px;
        }
        QPushButton {
            background-color: #4CAF50;
            border: none;
            color: white;
            padding: 10px 20px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 16px;
            margin: 4px 2px;
            cursor: pointer;
            border-radius: 5px;
        }
        QPushButton:hover {
            background-color: #45a049;
        }
        """


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Base64Tool()
    sys.exit(app.exec_())

代码解释:

get_stylesheet 方法:

    按钮的背景颜色为 #4CAF50,无边框,文本为白色,内边距为 10px 20px,字体大小为 16px,外边距为 4px 2px,鼠标指针为指针样式,边框半径为 5px。

    QPushButton:hover 部分:当鼠标悬停在按钮上时,按钮的背景颜色变为 #45a049。

    该方法返回一个包含 QSS 样式的字符串。

    QWidget 部分:设置整个窗口的背景颜色为 #f0f0f0。

    QTextEdit 部分:设置输入和结果文本框的背景颜色为白色,边框为 2px 宽的 #ccc 颜色,边框半径为 5px,内边距为 5px。

    QPushButton 部分:

使用方法:

复制上述代码到一个 Python 文件,例如 base64_tool.py。

在命令行中运行 python base64_tool.py。

输入需要编码或解码的内容,点击相应的按钮,点击 Copy Result 按钮复制结果。

通过上述修改,你的 Base64 工具界面将更加美观,按钮会有不同的颜色和悬停效果,文本框也会有边框和圆角。你可以根据自己的喜好调整 QSS 中的样式属性,以达到更理想的效果。例如,你可以改变颜色、字体、边框等属性,也可以为不同的控件添加更多的样式规则,如阴影、渐变等。

原创 00 老猫coder

标签:text,解码,base64,pyqt,result,按钮,button,input,self
From: https://www.cnblogs.com/o-O-oO/p/18673841

相关文章

  • pyqt+mysql实现学生学籍管理系统(带.sql和.ui文件)
    所有文件已经上传至https://github.com/shuimqy/Student-Information-Management-System-implemented-with-Qt.git需要的话可自行下载,自己写的数据库大作业,尽量不要照搬提交。如果对你有帮助的话,点个赞吧,有问题欢迎留言!下面是我的涉及过程即设计报告。需求分析概念结构......
  • B@se-还原错误字母表转码的base64编码
    题目:密文:MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbvD==JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs****kxyz012789+/ohholyshit,somethingismissing...第一行是密文,有明显的Base64编码特征(等号结尾)第二行是大小写字母、数字、+、/,有明显的Base64编码表......
  • Android使用MediaCodec解码视频
    importandroid.media.MediaCodecimportandroid.media.MediaExtractorimportandroid.media.MediaFormatimportandroid.util.Logimportjava.io.IOExceptionimportjava.nio.ByteBufferclassVideoDecoder{companionobject{privateconstvalTA......
  • PyQt5入门级超详细教程中篇
    PyQt5入门级超详细教程中篇:信号槽机制与表格数据展示接上篇:第4部分:事件处理与信号槽机制4.1什么是信号与槽?在PyQt5中,信号(Signal)和槽(Slot)是处理事件和交互的核心机制。信号代表某个事件的发生,而槽是信号触发后执行的函数。信号:信号是控件发出的消息,用来通知外界......
  • 搭建基于VS的PyQt6软件开发环境
    注:蓝色字体为超链接,点击即可下载对应软件一、下载Python下载Python安装包。打开安装包,点击Customizeinstallation安装Python(安装过Python的可点击UpgradeNow升级Python)。之后点击next和Install即可。二、安装第三方库打开命令提示符。将代码黏贴至命令提示符中,......
  • BurpSuite实操之解码器功能使用
    解码器是一个进行手动执行或对应用程序数据者智能解码编码的工具。此功能可用于解码数据找回原来的数据形式,或者进行编码和数据加密。由解码选项(Decodeas)、编码选项(Encodeas)、散列(Hash)构成.。编码、解码选项,目前支持URL、HTML、Base64、ASCI、十六进制、八进制、二进制......
  • FFmpeg音视频流媒体,视频编解码性能优化
    你是不是也有过这样一个疑问:视频如何从一个简单的文件变成你手机上快速播放的短片,或者是那种占满大屏幕的超高清大片?它背后的法宝,离不开一个神奇的工具——FFmpeg!说它强大,完全不为过,它在音视频处理领域专业度很高。从格式转换、音视频编解码,到流媒体处理,FFmpeg就像是视频领......
  • 字符串解码(递归)
    题目链接:https://leetcode.cn/problems/decode-string/题意:嵌套递归classSolution{public:intwhere;stringrepeat(stringpath,intcnt){stringans="";for(inti=1;i<=cnt;i++){ans+=path;......
  • java后端 进行 url 编码和解码
    有备考软考的小伙伴,想积分落户,单位评职称?科目太多不知道怎么选?考试考点难点太多没有头绪?刚准备1个多月过了高级,关注我,我整理了软考各科目的报考条件、适合人群以及备考攻略,可以直接领取:https://d.51cto.com/bLN8S1Java后端进行URL编码和解码在现代的Web开发中,URL编码和解码是一......
  • 【PyQt】pyqt进行封装程序为exe文件
    @[toc]pyqt进行封装程序为exe文件pyqt进行封装程序为exe文件将PyQt程序打包为可执行文件(.exe)可以使用PyInstaller工具。PyInstaller是一个流行的Python打包工具,能够将Python脚本及其依赖项打包为独立的可执行文件。以下是详细步骤:1.安装PyInstaller首先,确保你......