如何创建一个个人网站简答题,综合门户网站建设,苏州网站建设服务,设计画册ChatGPT的编程能力也不差#xff0c;本次我就一步一步提要求#xff0c;让ChatGPT根据我的要求#xff0c;编写出一个可用的#xff0c;可打包运行的桌面便签。
代码
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction, QSystemTrayIco…ChatGPT的编程能力也不差本次我就一步一步提要求让ChatGPT根据我的要求编写出一个可用的可打包运行的桌面便签。
代码
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, QCursorclass 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 radiusself.draggable Falseself.drag_position QPoint()self.default_font_size 13self.current_font_size self.default_font_sizeself.resizing False# 创建系统托盘图标self.tray_icon QSystemTrayIcon(self)self.tray_icon.setIcon(QIcon(noteIcon.png))self.tray_icon.activated.connect(self.handleTrayIconActivated)# 创建鼠标右键菜单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)# 创建文本编辑框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)) # 设置半透明背景颜色painter.drawRoundedRect(self.rect(), self.radius, self.radius)# 绘制红色关闭按钮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 Trueself.drag_position event.globalPos() - self.frameGeometry().topLeft()event.accept()# 判断点击的按钮pos event.pos()if QRect(10, 10, 20, 20).contains(pos):self.close() # 关闭当前窗口elif QRect(40, 10, 20, 20).contains(pos):self.hide() # 最小化当前窗口def mouseMoveEvent(self, event):if event.buttons() Qt.LeftButton and self.draggable:self.move(event.globalPos() - self.drag_position)event.accept()# 检查是否在窗口右下角设置鼠标形状if self.isInBottomRightCorner(event.pos()):self.setCursor(Qt.SizeFDiagCursor)else:self.setCursor(Qt.ArrowCursor)# 检查是否正在调整窗口大小if self.resizing:self.resizeWindow(event.globalPos())def mouseReleaseEvent(self, event):if event.button() Qt.LeftButton:self.draggable Falseself.resizing Falseevent.accept()def handleTrayIconActivated(self, reason):if reason QSystemTrayIcon.Trigger:self.showNormal() # 点击托盘图标恢复窗口显示def closeEvent(self, event):self.hide() # 窗口关闭时隐藏而不是退出应用程序self.tray_icon.show() # 显示系统托盘图标event.ignore() # 忽略窗口关闭事件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 1self.text_edit.setFont(QFont(Arial, self.current_font_size))def decreaseFontSize(self):if self.current_font_size 1:self.current_font_size - 1self.text_edit.setFont(QFont(Arial, self.current_font_size))if __name__ __main__:app QApplication(sys.argv)radius 15 # 修改圆角的值window RoundedWindow(radius)window.show()# 调试检查系统托盘是否可用if not QSystemTrayIcon.isSystemTrayAvailable():QMessageBox.critical(None, 错误, 系统托盘不可用)sys.exit(1)# 调试检查图标是否加载成功if not window.tray_icon.isSystemTrayAvailable():QMessageBox.critical(None, 错误, 无法加载系统托盘图标)sys.exit(1)window.tray_icon.show()sys.exit(app.exec_())
运行结果 便签属性1、半透明、圆角、最小化、系统托盘2、按住Ctrl不放滚动鼠标可改变文字大小3、系统托盘鼠标右键完全退出4、便签输入的文字实时更新至bianqian.txt