猫史档案馆


【Python作品分享】托盘2.0【作品秀】

用户:家灵cAZd家灵cAZd查看:0 回复:0 评论:0 创建时间:2022-07-24T14:47:16


【作品展示】

center_image

 

【作品介绍】

更新了一些东西

 

【作品源代码】

import sys
import webbrowser
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
from ui_game2 import Ui_Game2
import random

class Game3(QMainWindow,Ui_Game2):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.setup()

    def setup(self):
        pass

class Game2(QMainWindow,Ui_Game2):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.setup()

    def setup(self):
        self.lineEdit.setReadOnly(True)
        self.true_ = 0
        self.false_ = 0
        self.buttons = self.pbtn.buttons()
        self.generate()
    
    def generate(self):
        self.button_yes = random.choice(self.buttons)
        for i in self.buttons:
            if i != self.button_yes:
                i.setIcon(QIcon('土地.png'))
                i.clicked.connect(self.false)
            i.setIconSize(QSize(100, 100))
            i.setCheckable(True)
        self.button_yes.clicked.connect(self.true)
        self.button_yes.setIcon(QIcon('地鼠.png'))

    def true(self):
        self.break_connections()
        self.true_ += 1
        self.lineEdit.setText(str(self.true_))
        print('打中了','共打中'+str(self.true_)+'次')
        self.generate()
        
    def false(self):
        self.break_connections()
        self.false_ += 1
        print('错了','共打错'+str(self.false_)+'次')
        self.generate()

    def break_connections(self):
        for i in self.buttons:
            i.clicked.disconnect()

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()
        try:
            result = eval(answer)
            if result == 24:
                print('答对了')
                self.setup()
            else:
                print('答错了') 
            self.lineEdit.setText('')
        except:
            self.lineEdit.setText('')
            print('请输入算式')

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(True)
        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.game2 = Game2()
        self.edit = Edit()
        self.menu = QMenu()
        self.setToolTip('作者信息网站https://shequ.codemao.cn/user/18477425')
        self.menu.addAction(QAction('作者信息', self, triggered=self.author))
        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.menu.addAction(QAction('小游戏打地鼠', self, triggered=self.game2.show))
        self.setContextMenu(self.menu)

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

    def author(self):
        webbrowser.open('https://shequ.codemao.cn/user/18477425')

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

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页