最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python編寫一個桌面便簽應(yīng)用

 更新時間:2023年06月27日 08:57:38   作者:TANKING  
ChatGPT的編程能力也不差,本文將一步一步提出要求,讓ChatGPT根據(jù)我們的要求,編寫出一個可用的,可打包運行的桌面便簽,感興趣的可以了解一下

ChatGPT的編程能力也不差,本次我就一步一步提要求,讓ChatGPT根據(jù)我的要求,編寫出一個可用的,可打包運行的桌面便簽。

代碼

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction, QSystemTrayIcon, QMessageBox, QTextEdit
from PyQt5.QtCore import Qt, QPoint, QRect, QSize
from PyQt5.QtGui import QPainter, QColor, QBrush, QPen, QIcon, QFont, QCursor

class RoundedWindow(QMainWindow):
    def __init__(self, radius):
        super().__init__()
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setAttribute(Qt.WA_TranslucentBackground)
        self.setGeometry(700, 400, 400, 300)
        self.radius = radius
        self.draggable = False
        self.drag_position = QPoint()
        self.default_font_size = 13
        self.current_font_size = self.default_font_size
        self.resizing = False

        # 創(chuàng)建系統(tǒng)托盤圖標(biāo)
        self.tray_icon = QSystemTrayIcon(self)
        self.tray_icon.setIcon(QIcon("noteIcon.png"))
        self.tray_icon.activated.connect(self.handleTrayIconActivated)

        # 創(chuàng)建鼠標(biāo)右鍵菜單
        self.tray_menu = QMenu(self)
        exit_action = QAction("退出", self)
        exit_action.triggered.connect(QApplication.instance().quit)
        self.tray_menu.addAction(exit_action)
        self.tray_icon.setContextMenu(self.tray_menu)

        # 創(chuàng)建文本編輯框
        self.text_edit = QTextEdit(self)
        self.text_edit.setGeometry(10, 40, self.width() - 20, self.height() - 50)
        self.text_edit.setStyleSheet("background-color: transparent; border: none; color: white;")
        self.text_edit.setFont(QFont("Arial", self.current_font_size))
        self.text_edit.textChanged.connect(self.saveTextToFile)

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing)
        painter.setBrush(QColor(0, 0, 0, 150))  # 設(shè)置半透明背景顏色
        painter.drawRoundedRect(self.rect(), self.radius, self.radius)

        # 繪制紅色關(guān)閉按鈕
        close_button = QRect(10, 10, 20, 20)
        painter.setBrush(QColor(255, 0, 0))
        painter.setPen(Qt.NoPen)
        painter.drawEllipse(close_button)

        # 繪制黃色最小化按鈕
        minimize_button = QRect(40, 10, 20, 20)
        painter.setBrush(QColor(255, 255, 0))
        painter.setPen(Qt.NoPen)
        painter.drawEllipse(minimize_button)

        # 繪制灰色最大化按鈕
        maximize_button = QRect(70, 10, 20, 20)
        painter.setBrush(QColor(128, 128, 128))
        painter.setPen(Qt.NoPen)
        painter.drawEllipse(maximize_button)

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.draggable = True
            self.drag_position = event.globalPos() - self.frameGeometry().topLeft()
            event.accept()

            # 判斷點擊的按鈕
            pos = event.pos()
            if QRect(10, 10, 20, 20).contains(pos):
                self.close()  # 關(guān)閉當(dāng)前窗口
            elif QRect(40, 10, 20, 20).contains(pos):
                self.hide()  # 最小化當(dāng)前窗口

    def mouseMoveEvent(self, event):
        if event.buttons() == Qt.LeftButton and self.draggable:
            self.move(event.globalPos() - self.drag_position)
            event.accept()

        # 檢查是否在窗口右下角,設(shè)置鼠標(biāo)形狀
        if self.isInBottomRightCorner(event.pos()):
            self.setCursor(Qt.SizeFDiagCursor)
        else:
            self.setCursor(Qt.ArrowCursor)

        # 檢查是否正在調(diào)整窗口大小
        if self.resizing:
            self.resizeWindow(event.globalPos())

    def mouseReleaseEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.draggable = False
            self.resizing = False
            event.accept()

    def handleTrayIconActivated(self, reason):
        if reason == QSystemTrayIcon.Trigger:
            self.showNormal()  # 點擊托盤圖標(biāo)恢復(fù)窗口顯示

    def closeEvent(self, event):
        self.hide()  # 窗口關(guān)閉時隱藏而不是退出應(yīng)用程序
        self.tray_icon.show()  # 顯示系統(tǒng)托盤圖標(biāo)
        event.ignore()  # 忽略窗口關(guān)閉事件

    def saveTextToFile(self):
        text = self.text_edit.toPlainText()
        with open("bianqian.txt", "w") as file:
            file.write(text)

    def isInBottomRightCorner(self, pos):
        window_rect = self.rect()
        corner_rect = QRect(window_rect.bottomRight() - QPoint(20, 20), QSize(20, 20))
        return corner_rect.contains(pos)

    def resizeWindow(self, pos):
        new_size = QSize(pos.x() - self.geometry().left(), pos.y() - self.geometry().top())
        self.resize(new_size)

    def wheelEvent(self, event):
        if event.modifiers() == Qt.ControlModifier:
            delta = event.angleDelta().y()
            if delta > 0:
                self.increaseFontSize()
            else:
                self.decreaseFontSize()

    def increaseFontSize(self):
        self.current_font_size += 1
        self.text_edit.setFont(QFont("Arial", self.current_font_size))

    def decreaseFontSize(self):
        if self.current_font_size > 1:
            self.current_font_size -= 1
            self.text_edit.setFont(QFont("Arial", self.current_font_size))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    radius = 15  # 修改圓角的值
    window = RoundedWindow(radius)
    window.show()

    # 調(diào)試:檢查系統(tǒng)托盤是否可用
    if not QSystemTrayIcon.isSystemTrayAvailable():
        QMessageBox.critical(None, "錯誤", "系統(tǒng)托盤不可用!")
        sys.exit(1)

    # 調(diào)試:檢查圖標(biāo)是否加載成功
    if not window.tray_icon.isSystemTrayAvailable():
        QMessageBox.critical(None, "錯誤", "無法加載系統(tǒng)托盤圖標(biāo)!")
        sys.exit(1)

    window.tray_icon.show()
    sys.exit(app.exec_())

運行

便簽屬性

1、半透明、圓角、最小化、系統(tǒng)托盤

2、按住Ctrl不放滾動鼠標(biāo)可改變文字大小

3、系統(tǒng)托盤鼠標(biāo)右鍵完全退出

4、便簽輸入的文字實時更新至bianqian.txt

打包成exe

這么點東西打包成exe居然有34.9M這么大!這絕對不是Python的問題,是我技術(shù)的問題。

以上就是使用Python編寫一個桌面便簽應(yīng)用的詳細內(nèi)容,更多關(guān)于Python桌面便簽的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài)【推薦】

    Python實現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài)【推薦】

    今天主要是來說一下怎么可視化來監(jiān)控你的爬蟲的狀態(tài)。文中通過實例代碼給大家分析了Python實現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài),感興趣的朋友一起看看吧
    2018-08-08
  • 在Python的Django框架中實現(xiàn)Hacker News的一些功能

    在Python的Django框架中實現(xiàn)Hacker News的一些功能

    這篇文章主要介紹了在Python的Django框架中實現(xiàn)Hacker News的一些功能,包括投票“頂”評論等功能,需要的朋友可以參考下
    2015-04-04
  • python Aligo庫設(shè)置json路徑使用詳解

    python Aligo庫設(shè)置json路徑使用詳解

    這篇文章主要為大家介紹了python Aligo庫設(shè)置json路徑使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Python包argparse模塊常用方法

    Python包argparse模塊常用方法

    argparse是python用于解析命令行參數(shù)和選項的標(biāo)準(zhǔn)模塊。argparse模塊的作用是用于解析命令行參數(shù),通過實例代碼講解argparse的基本使用方法,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • python?sklearn與pandas實現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    python?sklearn與pandas實現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    對于缺失值的處理,主要配合使用sklearn.impute中的SimpleImputer類、pandas、numpy。其中由于pandas對于數(shù)據(jù)探索、分析和探查的支持較為良好,因此圍繞pandas的缺失值處理較為常用
    2022-09-09
  • python Jupyter運行時間實例過程解析

    python Jupyter運行時間實例過程解析

    這篇文章主要介紹了python Jupyter運行時間實例過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 基于Python實現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實例

    基于Python實現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實例

    這篇文章主要介紹了基于Python實現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • python實現(xiàn)跨年煙花動態(tài)效果

    python實現(xiàn)跨年煙花動態(tài)效果

    這篇文章主要介紹了python實現(xiàn)跨年煙花的動態(tài)效果,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • Python自動化高效實現(xiàn)Word文檔的動態(tài)創(chuàng)建與管理

    Python自動化高效實現(xiàn)Word文檔的動態(tài)創(chuàng)建與管理

    在日常工作中,Word文檔處理占據(jù)了我們大量時間,ord文檔的動態(tài)創(chuàng)建與管理,讓文檔自動化成為您的得力助手,本文將深入探討如何利用一個高效的Python庫,實現(xiàn)Word文檔的動態(tài)創(chuàng)建與管理,感興趣的小伙伴可以了解下
    2025-09-09
  • 使用Django實現(xiàn)文章與多個標(biāo)簽關(guān)聯(lián)的示例詳解

    使用Django實現(xiàn)文章與多個標(biāo)簽關(guān)聯(lián)的示例詳解

    在構(gòu)建一個博客或內(nèi)容管理系統(tǒng)時,經(jīng)常需要實現(xiàn)文章與標(biāo)簽的關(guān)聯(lián),在 Django 中,我們可以利用 ManyToManyField 來實現(xiàn)文章與標(biāo)簽的多對多關(guān)系,在本文中,我們將詳細探討如何使用 Django 模型實現(xiàn)文章與多個標(biāo)簽的關(guān)聯(lián),需要的朋友可以參考下
    2023-11-11

最新評論

五寨县| 左云县| 都匀市| 遂川县| 若羌县| 崇信县| 竹北市| 高台县| 六盘水市| 阜康市| 定边县| 专栏| 行唐县| 元谋县| 盐亭县| 广昌县| 舒兰市| 囊谦县| 巧家县| 绥滨县| 莎车县| 江北区| 汨罗市| 石楼县| 南溪县| 余姚市| 彭州市| 桐庐县| 绵竹市| 永登县| 会理县| 隆德县| 呼玛县| 洪江市| 正安县| 呼图壁县| 桃源县| 阳原县| 齐河县| 广安市| 江达县|