猫史档案馆


【Python作品分享】托盘1.0版本【作品秀】

用户:家灵cAZd家灵cAZd查看:0 回复:4 评论:0 创建时间:2022-06-15T22:48:50


【作品展示】

center_image

 

【作品介绍】

这是一个鉴于课程內容而作的作品,其中的大多数移植课程代码,其中并没有什么创新。但这只是最开始的版本,我觉得,只要通过作者的努力,一定会有创新点的。

 

【作品源代码】

import sys
from PySide2.QtWidgets import *
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtMultimedia import *
from ui_edit import Ui_Edit
from ui_24 import Ui_MainWindow
import random

class Game(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.setup()

    def setup(self):
        cards = [self.pbtn_1, self.pbtn_2, self.pbtn_3, self.pbtn_4]
        for card in cards:
            number = str(random.randint(1, 10))
            card.setText(number)

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_Return:
            self.verify()

    def verify(self):
        answer = self.lineEdit.text()
        result = eval(answer)
        if result == 24:
            print('答对了')
            self.setup()
        else:
            print('答错了')
        self.lineEdit.setText('')

class Edit(QMainWindow, Ui_Edit):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.setup()

    def setup(self):
        self.pbtn_start.clicked.connect(self.start)
        self.pbtn_save.clicked.connect(self.save)
        self.textEdit.setReadOnly(True)

    def start(self):
        self.pbtn_start.setEnabled(False)
        self.textEdit.setReadOnly(False)
        timer = QTimer()
        timer.singleShot(60000*40,self.end)

    def end(self):
        self.pbtn_start.setEnabled(False)
        self.textEdit.setReadOnly(True)

    def save(self):
        file = QFileDialog.getSaveFileName(caption='保存写作结果',filter='(*.txt)')[0]
        text = self.textEdit.toPlainText()
        with open(file,'w',encoding='utf-8') as f:
            f.write(text)
        self.textEdit.setText('')

class Tray(QSystemTrayIcon):
    def __init__(self):
        super().__init__()
        self.setup()
        self.show()

    def setup(self):
        self.icon = QIcon('sit.png')
        self.setIcon(self.icon)
        self.add_menu()

    def add_menu(self):
        self.game = Game()
        self.edit = Edit()
        self.menu = QMenu()
        self.setToolTip('作者信息网站https://shequ.codemao.cn/user/18477425')
        self.menu.addAction(QAction('退出', self, triggered=self.quit))
        self.menu.addAction(QAction('40分钟打字练习', self, triggered=self.edit.show))
        self.menu.addAction(QAction('小游戏24点', self, triggered=self.game.show))
        self.setContextMenu(self.menu)

    def quit(self):
        self.hide()
        sys.exit()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Tray()
    sys.exit(app.exec_())

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
家灵cAZd家灵cAZd

from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(427, 265)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.pbtn_1 = QPushButton(self.centralwidget)
        self.pbtn_1.setObjectName(u"pbtn_1")
        self.pbtn_1.setGeometry(QRect(48, 20, 80, 111))
        font = QFont()
        font.setPointSize(28)
        self.pbtn_1.setFont(font)
        self.pbtn_3 = QPushButton(self.centralwidget)
        self.pbtn_3.setObjectName(u"pbtn_3")
        self.pbtn_3.setGeometry(QRect(132, 20, 80, 111))
        self.pbtn_3.setFont(font)
        self.pbtn_4 = QPushButton(self.centralwidget)
        self.pbtn_4.setObjectName(u"pbtn_4")
        self.pbtn_4.setGeometry(QRect(300, 20, 80, 111))
        self.pbtn_4.setFont(font)
        self.pbtn_2 = QPushButton(self.centralwidget)
        self.pbtn_2.setObjectName(u"pbtn_2")
        self.pbtn_2.setGeometry(QRect(216, 20, 80, 111))
        self.pbtn_2.setFont(font)
        self.lineEdit = QLineEdit(self.centralwidget)
        self.lineEdit.setObjectName(u"lineEdit")
        self.lineEdit.setGeometry(QRect(110, 150, 181, 31))
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setObjectName(u"menubar")
        self.menubar.setGeometry(QRect(0, 0, 427, 17))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName(u"statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)

        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.pbtn_1.setText(QCoreApplication.translate("MainWindow", u"1", None))
        self.pbtn_3.setText(QCoreApplication.translate("MainWindow", u"1", None))
        self.pbtn_4.setText(QCoreApplication.translate("MainWindow", u"1", None))
        self.pbtn_2.setText(QCoreApplication.translate("MainWindow", u"1", None))
    # retranslateUi

点赞0


评论


家灵cAZd家灵cAZd

from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *


class Ui_Edit(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(800, 369)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.textEdit = QTextEdit(self.centralwidget)
        self.textEdit.setObjectName(u"textEdit")
        self.textEdit.setGeometry(QRect(10, 10, 781, 261))
        self.pbtn_start = QPushButton(self.centralwidget)
        self.pbtn_start.setObjectName(u"pbtn_start")
        self.pbtn_start.setGeometry(QRect(70, 290, 91, 31))
        self.pbtn_save = QPushButton(self.centralwidget)
        self.pbtn_save.setObjectName(u"pbtn_save")
        self.pbtn_save.setGeometry(QRect(400, 290, 91, 31))
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setObjectName(u"menubar")
        self.menubar.setGeometry(QRect(0, 0, 800, 17))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName(u"statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)

        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"\u9650\u65f6\u5199\u4f5c\u7f16\u8f91\u5668", None))
        self.pbtn_start.setText(QCoreApplication.translate("MainWindow", u"\u5f00\u59cb", None))
        self.pbtn_save.setText(QCoreApplication.translate("MainWindow", u"\u4f喵\u5b58", None))
    # retranslateUi

点赞0


评论


家灵cAZd家灵cAZd

需导入的代码,在最后面

点赞0


评论


家灵cAZd家灵cAZd

center_image

点赞0


评论