龙不死 发表于 2024-1-17 15:21

屏幕网格生成器

本帖最后由 龙不死 于 2024-1-17 15:22 编辑

屏幕网格生成器

[*]功能: 该程序创建了一个透明的、无边框的窗口,以整个屏幕为大小。窗口中使用定时器定期绘制一个透明的网格,该网格横向和纵向均匀分布。



[*]用途:



[*]对齐和布局: 网格可以帮助你确保图形、控件或元素按照预期的方式对齐和布局。
[*]设计和创意工作: 在图形设计、界面设计或创意工作中,透明网格可以作为一个辅助工具,帮助你创建对称、整齐的布局或图案。
[*]调试和测试: 当你需要检查应用程序或网站中元素的位置和对齐时,透明网格可以帮助你快速进行调试和测试。
[*]屏幕分割和比例: 可以使用网格来辅助将屏幕分割成不同区域,或者确保不同元素在屏幕上的比例是合适的。
[*]虚拟参考线: 在没有直接支持参考线功能的编辑器或工具中,透明网格可以充当虚拟的参考线,提供对齐和定位的帮助。
[*]绘图辅助: 如果你是一个数字艺术家或绘图者,透明网格可以帮助你在绘图过程中保持线条的直观感觉,以及确保图形元素的对齐。

总体而言,这种透明网格窗口是一个通用工具,可以根据需要进行灵活使用。它为用户提供了一个简便的辅助工具,用于更精确地控制和布局屏幕上的元素。


[*]使用步骤:


[*]安装依赖库:确保已经安装 PyQt5 库,可以使用 pip install PyQt5 安装。
[*]运行脚本:在终端或命令提示符中运行脚本,即 python script.py。
[*]查看效果:打开窗口后,将看到整个屏幕被透明的网格线覆盖。网格线每100毫秒更新一次,以确保窗口内容动态展示。





import sys
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget

class FloatingWindow(QMainWindow):
    def __init__(self):
      super().__init__()

      # 设置无边框和透明度
      self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
      self.setAttribute(Qt.WA_TranslucentBackground)

      # 获取屏幕大小
      screen = QApplication.primaryScreen()
      screen_rect = screen.availableGeometry()
      screen_width, screen_height = screen_rect.width(), screen_rect.height()

      # 设置窗口大小为整个屏幕
      self.setGeometry(0, 0, screen_width, screen_height)

      # 定时器用于更新窗口内容
      self.timer = QTimer(self)
      self.timer.timeout.connect(self.update_content)
      self.timer.start(100)# 每100毫秒更新一次内容

    def update_content(self):
      # 更新窗口内容(绘制网格)
      self.update()

    def paintEvent(self, event):
      # 在窗口上绘制网格
      painter = QPainter(self)
      painter.setRenderHint(QPainter.Antialiasing, True)

      grid_size = 20
      grid_color = QColor(0, 0, 0, 150)# 透明黑色

      # 绘制横向网格线
      for y in range(0, self.height(), grid_size):
            painter.drawLine(0, y, self.width(), y)

      # 绘制纵向网格线
      for x in range(0, self.width(), grid_size):
            painter.drawLine(x, 0, x, self.height())

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

a490126994 发表于 2024-1-18 21:40

确实对搞设计的同学很有帮助

xiaoshi666 发表于 2024-1-17 17:13

谢谢大哥,确实好用

dork 发表于 2024-1-17 17:29


搞设计很方便

小楼昨夜东风 发表于 2024-1-17 17:26

可以方便的画出等比例的东西,是吧

halfone 发表于 2024-3-12 11:03

hctxlg 发表于 2024-3-11 22:22
有退出热键就好了

class FloatingWindow(QMainWindow):
    def __init__(self):
      super().__init__()
      ......
      shortcut = QShortcut(QKeySequence(Qt.CTRL + Qt.Key_X), self)
      shortcut.activated.connect(self.exit_application)

    def exit_application(self):
      # 显示退出确认对话框
      reply = QMessageBox.question(self, "退出应用程序", "确定要退出吗?", QMessageBox.Yes | QMessageBox.No)
      if reply == QMessageBox.Yes:
            # 关闭应用程序
            QApplication.quit()

田田爱崽崽 发表于 2024-1-17 15:22

你是不是在找“powertoys"?

龙不死 发表于 2024-1-17 15:25

田田爱崽崽 发表于 2024-1-17 15:22
你是不是在找“powertoys"?

不太一样吧 我这个就是用来画东西的,比如搞一个照片放在网格下,然后另一个绘图或者建模程序也在这个网格下可以参考比例进行调整。

tomliu 发表于 2024-1-17 15:38

运行效果什么样呀, 有图片吗

sai609 发表于 2024-1-17 15:54

拼接指定若干张图片,python如何实现

tezb666 发表于 2024-1-17 16:58

确实实用,感谢分享

wan23 发表于 2024-1-17 17:19

搞设计很方便,用来对照比例尺
页: [1] 2 3
查看完整版本: 屏幕网格生成器