当前位置:首页 教程 编程教程
全部
系统教程
软件教程
CMS教程
编程教程

软件简介
去评论 去报错

前言:

对于常用电脑的工作人员来说,剪贴板工具可以帮助他们更快地复制和粘贴文本、图像和其他类型的数据。可以将经常使用的文本片段、常见的回复模板、重复的命令等保存到剪贴板工具中,随时调用它们,避免了重复输入和查找的繁琐。Windows 10和Windows 11都提供了自动的剪贴板工具,但最让人受不了的就是记录数据量太少并且不能使用快捷键输入。所以一款好用的方便的剪贴板工具就显得尤为重要。小编试过很多款复制粘贴助手类型的工具,大多都有着各种问题,诸如:有的功能太过复杂、有的功能又太过单一,甚至有的还要充会员.....目前小编如何的是“蓝牛复制粘贴助手”就是要收费的,而且没有单条数据置顶排序功能。所以小编就相关使用python3+pyqt6制作一款自用的剪贴板自制粘贴助手工具......

pyqt6实现python界面开发

我是怎么做的?

熟话说万事开头难,由于没有过多的pyqt界面开发验验,一切都得现学现用,我这开头也难。没办法就想到了目前最火的AI模型chatgpt,正常最近分享过一款免费的CHATGPT灵动Ai助手”,于是跟gpt说“给我一个pyqt6基于QApplication的简单用例”,在chatgpt的的帮助下将代码完善后终于完成了界面的制作编写并跑通。

chatgpt写python代码

具体代码这里就不贴出来了,文章下方会给出所有相关代码的下载。这里只说说使用大概的过程,具体自行百度吧。

  • 1、使用QT designer设计出一个界面,并将界面的.ui文件转换成.py的代码得到Ui_MainWindow类,当然在主程序中也可直接调用.ui的界面文件。

    PyQt加载ui界面Ui_MainWindow类

  • 2、结合上面提到用chatGpt生成的代码片段,引入.ui文件转换成.py的代码库。这里要说一下,我已知的比较通用的引入并使用Ui_MainWindow类的方法分继承Ui_MainWindow和承继承Ui_MainWindow,使用上大同小异,下图给出参考

    PyQt加载ui界面Ui_MainWindow类

  • 3、剩下的就是窗口及控件的美化了,我将我的pyqt6界面设置了无边框、背景透明等效果,具体代码请在下方下载;

python+pyqt6界面开发都有哪些坑?

坑太多了,一下真说不清楚,如pyqt6和pyqt5的代码不通用、界面卡死等。。。。

  • 1、pyqt6和pyqt5的代码不通用主要原因是在pyqt6版本中对部分方法及类用了修改及迁移,然而社区对应pyqt6的资料太少所以只能找到pyqt5的代码例子。(后面都是通过灵动Ai助手解决的代码兼容问题

  • 2、pyqt5、6使用第三方快捷键监听库 坑死人的大坑。

在开发过程中,需要通过全局快捷键实现pyqt6窗口的显示和隐藏,百度一搜索就能找到相关的代码例子,诸如下面代码片段:

#下面是一个监听全局快捷键的Python代码示例,它使用了第三方库`keyboard`。

```python
import keyboard

def on_hotkey():
    print("Global hotkey pressed!")

# 注册全局快捷键 Ctrl+Shift+A
keyboard.add_hotkey("Ctrl+Shift+A", on_hotkey)

# 启动监听
keyboard.wait()
```

#下面是一个监听全局快捷键的Python代码示例,它使用了第三方库`pynput`。
from pynput import keyboard

def on_press(key):
    if key == keyboard.Key.ctrl_l and key == keyboard.Key.shift_l and key.char == 'a':
        print("Global hotkey pressed!")

# 创建监听器
listener = keyboard.Listener(on_press=on_press)

# 启动监听
listener.start()

# 保持运行,以便监听器在后台继续监听
listener.join()

确实,不论是keyboard还是pynput库在python单独使用都很不错,然而当我将它们回到pyqt6代码中后就出问题了。

问题主要出现在通过快捷键切换pyqt主窗口隐藏和显示时,窗口出现了卡死的情况,并且在窗口恢复时无法将窗口显示在最上层(最小化和恢复最小化也是一样问题)

pyqt6窗口显示在最上层

如上图,窗口窗口默认是在最上层显示,然后通过快捷键将窗口隐藏,期间如果操作过其它软件再切换为显示状态后pyqt6窗口将如上图那样被其它窗口遮挡。。。通过各种查资料找教程,都是说要设置窗口状态标志,如下面代码,但根据解决不了问题。(注意:这里提到的pyqt窗口或界面不显示在最上层的问题不是置顶问题,因为置顶是将窗口固定在屏幕最上层,而跟我要的明显不是一个)

self.activateWindow()    #设置窗口为激活状态
self.setWindowState(self.windowState() & Qt.WindowState.WindowActive)#设置窗口为激活状态
self.raise_()    #设置窗口为最上层显示

具体出了什么问题?又怎么解决?

在试过无数的方法都不能解决pyqt界面不显示在最上层的问题后,我也没有放弃,我坚信一定能找到问题,于是我又继续在网上浏览。

终于在网上找解决方案时无意中看到另外一款可以用于python注册全局热键的库“system_hotkey”,了解到它是基本windows win32con API实现,眼看有戏,于是马上安装测试。果真有效!

由于system_hotkey库的代码例子中使用了pyqt的信号 “pyqtSignal”,所以为了验证问题是否是由python热键模块不兼容导致,我又重新测试了keyboard和pynput这两个python快捷键注册库,同样也使用了pyqt的信号 “pyqtSignal”来监听快捷键的动作,得出结果与pyqt的信号 “pyqtSignal”监听无关,主要问题就是出在keyboard和pynput这两个python快捷键注册库上面,具体错误原因我也没有能力找出来,但大概能猜测出这个肯定跟keyboard和pynput这两个python快捷键注册库的底层实现有关。

另外,在system_hotkey注册全局快捷键时发现有不少按键组合无法使用,经过查看system_hotkey原代码发现是作者没有写完善,比如需要浏览ctrl+`组合键(“`”是键盘Esc下面那个按键)就会报错,最后定位到system_hotkey即system_hotkey.py文件,在字典vk_codes中增加'`':win32con.N_TMASK1即可。

下载地址

普通下载

点击直接低速下载,因需宽带成本高速下载需扫码

本地低速下载

网盘下载

通过不限速阿里、蓝奏网盘高速下载(部分需要扫码)

站长声明:

1、本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。

2、如遇到资源无法下载请 点击报错,我们将尽快纠错。

3、如有侵犯您的版权,请联系我们,我们会尽快处理,并诚恳的向你道歉!

注意:如.zip压缩包无法打开请将后缀修改成.exe或使用其它压缩软件尝试。

文章评论

用户头像
匿名网友
发表评论
昵称

评论记录:

未查询到任何数据!

热门软件

PHP从入门到精通(第3版) 免费PDF电子书下载

《php从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。

推荐!《Web编程基础:HTML5、CSS3、JavaScript (第2版)》完整版PDF下载免费看

《Web编程基础:HTML5、CSS3、JavaScript (第2版)》可以免费下载PDF电子书。通过电子书的形式,读者可以在计算机、平板电脑、手机等设备上自由阅读,节省纸质书籍的成本。

数据采集不可或缺的技巧:Python3 requests使用代理IP请求网络数据源码分享

本文讲述了如何使用Python爬虫中的代理IP,以及获取代理IP的方法。注意代理IP的稳定性与可用性,并设置合适的参数提高成功率。

《JavaScript和jQuery实战手册 原书第2版》 前端开发教程PDF免费下载

《JavaScript和jQuery实战手册(原书第2版)》第1版不仅在市场上取得了良好的销售成绩,而且获得了读者好的口碑,在JavaScript编程领域独树一帜!第2版结合JavaScript和jQuery新技术

PHP+MySQL动态网站开发从入门到精通.pdf

《PHP+MySQL动态网站开发从入门到精通》是张工厂所著的一本详细介绍如何使用PHP和MySQL进行动态网站开发的书籍。本书从入门到精通,适合初、中级Web开发人员阅读。本书不仅介绍了PHP和MySQL的基础知识,还

猜你想看

免费下载《PHP和MySQL Web开发(原书第5版)》PDF电子书及完整源码示例

分享免费的《PHP和MySQL Web开发(原书第5版)》PDF电子书供读者下载,读者可以随时随地阅读本书,并且包含所有例子代码源文件。

易语言超级列表框置行列色,修改不闪烁版本源码免费下载

易语言超级列表框置行列色,修改不闪烁版本源码免费下载,【指定行】文本颜色和背景颜色,【指定行列】文本颜色或背景颜色的修改需要自行开发完善

Qt高级编程教程 完整带书签 高清PDF免费下载

本书是一本阐述Qt高级编程技术的书籍。本书以工程实践为主旨,是对 t现有的 700 多个类和上百万字参考文档中部分关键技术深人、全面的讲解和探讨,如丰富的网络/桌面应用程序、多线程、富文本处理

Python教程算法教程中文版PDF电子书阿里云盘免费下载

本书用Python教程语言来讲解算法的分析和设计。本书主要关注经典的算法,但同时会为读者理解基本算法问题和解决问题打下很好的基础

ThinkPHP教程:6.0快速开发手册(案例版) 中文高清版PDF下载

ThinkPHP6.0快速开发手册(案例版)是一款适用于PHP开发人员的高效开发框架手册,此软件主要以经典案例进行讲解,便于初学者在开发过程中更加简单易懂地入门和上手。以下将详细介绍该软件的主要功能与特色。

数据采集不可或缺的技巧:Python3 requests使用代理IP请求网络数据源码分享

本文讲述了如何使用Python爬虫中的代理IP,以及获取代理IP的方法。注意代理IP的稳定性与可用性,并设置合适的参数提高成功率。

PHP与MySQL动态网站开发免费PDF电子书下载

《PHP与MySQL动态网站开发(第4版)》适用于Web应用开发人员,适合初、中层次读者

Python进阶教程《Intermediate Python》中文译本电子书下载

《Python进阶》是《Intermediate Python》的中文译本, 谨以此献给进击的 Python 和 Python 程序员们!

最新标签