python基础#PySide6制作表情包界面

目标:

制作一个包含八个按钮的表情包界面,用于发送表情


实现思路:

1.创建界面
2.利用循环创建八个按钮并触发单个按钮的点击事件
3.使用emoji表情便于输出


实现方式:

导入类:

import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QMessageBox

创建窗口代码以及界面布局:

class ButtonWidget(QWidget):
    def __init__(self):
        super().__init__()

        # 初始化布局和按钮
        self.initUI()

    def initUI(self):

        self.setFixedSize(190, 91)

        vertical_layout = QVBoxLayout()
        self.buttons = []
        #界面由两行按钮组成,每行四个表情符号
        button_texts = [
            ['😀', '😁', '😅', '🤣'],
            ['😊', '😏', '🫡', '😋']
        ]
        #每个按钮大小为31x31像素,并绑定点击事件,点击时调用getEmoji方法并传入被点击按钮的文本(表情)。
        # 异常会在控制台打印。
        # 标题设为“表情选择”。
        for row_texts in button_texts:
            horizontal_layout = QHBoxLayout()
            buttons_row = [QPushButton(text, self) for text in row_texts]
            for button in buttons_row:
                try:
                    button.setFixedSize(31, 31)
                except Exception as e:
                    print(f"Error setting fixed size: {e}")
                try:
                    button.clicked.connect(lambda checked, btn=button: self.getEmoji(btn.text()))
                except Exception as e:
                    print(f"Error connecting signal: {e}")
                self.buttons.append(button)
                horizontal_layout.addWidget(button)

            vertical_layout.addLayout(horizontal_layout)

        self.setLayout(vertical_layout)
        self.setWindowTitle('表情选择')

    def getEmoji(self, emoji):
        print(emoji)

展示界面:

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

结果展示:

请添加图片描述

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值