zhiyiYo / PyQt-Frameless-Window

A cross-platform frameless window based on pyqt5, support Win32, Linux and macOS.
https://pyqt-frameless-window.readthedocs.io
GNU General Public License v3.0
482 stars 67 forks source link

简中自述文件(已提交拉取请求无回应,先将中文文档贴在议题里) #137

Closed TC999 closed 10 months ago

TC999 commented 10 months ago

logo

PyQt-Frameless-Window

一个基于PyQt5的跨平台无边框窗口

平台 Win32 | Linux | macOS 下载 GPLv3

封面

特性

安装

使用 pip 安装:

pip install PyQt5-Frameless-Window

或克隆仓库:

git clone https://github.com/zhiyiYo/PyQt-Frameless-Window.git
python setup.py install

要求

平台 要求
Win32 pywin32
Linux xcffib
MacOS pyobjc

用法

要使用无边框窗口,只需继承 FramelessWindowFramelessMainWindow。以下是一个最简示例:

import sys

from PyQt5.QtWidgets import QApplication
from qframelesswindow import FramelessWindow

class Window(FramelessWindow):

    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.setWindowTitle("PyQt-Frameless-Window")
        self.titleBar.raise_()

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

对于更复杂的需求,请参阅 demo.pymain_window.py

示例

文档

想了解更多关于 PyQt-Frameless-Window 的信息吗?请阅读 帮助文档 👈

注意事项

  1. FramelessWindow 提供了一个默认的自定义标题栏。如果不喜欢,只需像 demo.py 中那样重新编写它。

  2. 在 Win10 上移动亚克力窗口可能会卡住。目前还没有很好的解决方案。也许在移动窗口时可以禁用亚克力效果,但我在源代码中还没有这样做。

  3. 切片布局默认未启用。请查看#56以了解如何启用。

  4. 如果在 Windows 上遇到此问题:

    ImportError: DLL load failed while importing win32api

    可以查看我在 stackoverflow 上的回答或我的 博客 中的解决方案。

  5. 如果使用 PySide2、PySide6 或 PyQt6,可以在 PySide2PySide6PyQt6 分支中下载代码。

支持

如果这个项目对您有很大帮助,您想支持该项目的开发和维护,可以通过 爱发电ko-fi 赞助我。非常感谢您的支持 🥰

参考

以下是一些使用 PyQt-Frameless-Window 的项目:

参考

许可证

PyQt-Frameless-Window 使用 GPLv3 许可。

版权所有 © 2021 年 zhiyiYo。

zhiyiYo commented 10 months ago

不好意思,最近有点忙,忘记处理 issue 和 pr 了,感觉中文的 README 不是很有必要,因为这个库的使用方式太简单了,看下 example 应该就知道怎么用了