PythonPyQt PyQt 2023-06-17 快捷键处理 屏蔽alt+F4等快捷键12345678910111213141516171819202122232425262728class GlobalEventFilter(QAbstractNativeEventFilter): def __init__(self): super(GlobalEventFilter, self).__init__() def nativeEventFilter(self, event_type, sip_voidptr): if event_type == "windows_generic_MSG" or event_type == "windows_dispatcher_MSG": msg = MSG.from_address(sip_voidptr.__init__()) if msg.message in [WM_KEYDOWN, WM_SYSKEYDOWN]: if VK_F4 == msg.wParam and win32api.GetKeyState(VK_MENU) & 0xF000: return True, 1 # True 代表我处理了消息,不需要Qt处理 elif VK_ESCAPE == msg.wParam: return True, 1 # 屏蔽esc键 return False, 1class App(QApplication): def __init__(self, *args): super(App, self).__init__(*args) self.global_event_filter = GlobalEventFilter() self.intallNativeEventFilter(self.global_event_filter) def exit_app(self): self.removeNativeEventFilter(self.global_event_filter)
PythonPyQt Qt QtWebEngine 2023-06-17 编译QtWebEngine 由于QtWebEngine本身并不支持H.264编码的音视频,现自行编译,整个过程如下: 依赖准备VS2015 Update3 下载地址 Read More
PythonPyQt PyQt 2023-06-17 Qt视图模型 数据(Data):是实际的数据,如数据库的一个数据表或SQL查询结果,内存中的一个 StringList,或磁盘文件结构等。 视图或视图组件(View):是屏幕上的界面组件,视图从数据模型获得每个数据项的模型索引(model index),通过模型索引获取数据,然后为界面组件提供显示数据。Qt 提供一些现成的数据视图组件,如 QListView、QTreeView 和 QTableView 等。 模型或数据模型(Model):与实际数据通信,并为视图组件提供数据接口。它从原始数据提取需要的内容,用于视图组件进行显示和编辑。Qt 中有一些预定义的数据模型,如 QStringListModel 可作为 StringList 的数据模型,QSqlTableModel 可以作为数据库中一个数据表的数据模型。 Read More
PythonPyQt Qt 2023-06-17 PyQt5开发心得 其实大部分的客户端开发都有共通性。一套GUI API,Button、Text、Dialog等等,绘制机制,事件传递机制,都是根据不同平台的特性做了封装。但开发的时候,用法是类似的。而Python由于语法的简易性,开发效率比使用C++版的Qt高很多。所谓的性能损耗其实在大部分的应用中是可以忽略的。 基础结构的搭建不管是做一个项目还是多个项目,准备一套基础框架,对开发效率是非常有帮助的。这个基础框架通常包括: 基础结构 基础工具类、工具函数:字符串处理、时间处理、日期处理、线程处理、网络请求、拖拽工具、缩放工具、资源下载工具、 基础控件:弹窗提示、确认框、webview的封装和通讯模块、loading框、全局样式处理 日志工具: 数据模拟工具:mock 单元测试框架: 性能分析工具:分析代码质量 打包工具:分发安装包 Read More