Pyqt常用代码片段

MVC

python 复制代码
class Widget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_Widget()
        self.ui.setupUi(self)
        self.ui.testButton.clicked.connect(self.button_click)

    def button_click(self):
        global n_page
        pages = [self.ui.page, self.ui.page_2, self.ui.page_3]
        if n_page >= len(pages):
            n_page = 0
        print("Button Active %s Pages: %d" % (self.ui.testButton.objectName(), n_page))
        self.ui.stackedWidget.setCurrentWidget(pages[n_page])
        n_page += 1

    # Mouse event deal functions
    def mousePressEvent(self, event):
        if event.buttons() == Qt.LeftButton:
            print('Mouse click: LEFT CLICK')
        if event.buttons() == Qt.RightButton:
            print('Mouse click: RIGHT CLICK')
python 复制代码
CONFIG_ROOT = QDir.currentPath()
class Widget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_Widget()
        self.ui.setupUi(self)
        self.TreeViewMod()

    def TreeViewMod(self):
        TreeModule = QFileSystemModel()
        TreeModule.setRootPath(CONFIG_ROOT)
        self.ui.treeView.setModel(TreeModule)
        self.ui.listView.setModel(TreeModule)
        self.ui.tableView.setModel(TreeModule)

自定义代理类

python 复制代码
from PySide6.QtWidgets import QStyledItemDelegate,QLineEdit,QWidget,QStyleOptionViewItem
from PySide6.QtCore import Qt,QModelIndex,QPersistentModelIndex,QAbstractItemModel

class LineEditDelegate(QStyledItemDelegate):
    def __init__(self,parent=None):
        super().__init__(parent)
    
    def createEditor(self, parent: QWidget, option: QStyleOptionViewItem, index: QModelIndex | QPersistentModelIndex) -> QWidget:
        editor=QLineEdit(parent)
        editor.setFrame(False)
        return editor
    
    def setEditorData(self, editor: QWidget, index: QModelIndex | QPersistentModelIndex) -> None:
        model=index.model()
        text=model.data(index,Qt.ItemDataRole.EditRole)
        editor.setText(text)
    
    def setModelData(self, editor: QWidget, model: QAbstractItemModel, index: QModelIndex | QPersistentModelIndex) -> None:
        text = editor.text()
        model.setData(index,text,Qt.ItemDataRole.EditRole)

    def updateEditorGeometry(self, editor: QWidget, option: QStyleOptionViewItem, index: QModelIndex | QPersistentModelIndex) -> None:
        editor.setGeometry(0,1,2,3)

工具集

python 中使用的 装饰器

c(11)

Rust trait

C++ trait (c20)

windows 常用的进程间的通信就是消息队列
之后会有C++ 20 去写一个客户端的请求程序,和一个微型的服务程序,用于制作一个小网管,PyQt 用于 MVC
简易的一问一答的模式(http 的 post 和 get 请求,优先使用python 解析分析,这部分工作已经完成,原始CGI 的请求访问,以后也会逐步的淘汰),先用简单的方式完成,3种模式(工厂,调试,和维护)
C++ libevent 用于 服务代理和报文解析
Rust(带着看吧,感觉小作坊能用起来的几率太低,但是底层编程的走向,更趋向于用Rust)

相关推荐
utmhikari10 小时前
【日常随笔】万字长文,如何用pyside6开发一个python桌面工具
前端·python·pyqt
zoney hu2 天前
PyQt学习记录
pyqt
不爱吃鱼的猫-4 天前
Pyside6 开发 使用Qt Designer
python·pyqt·pyside6
不爱吃鱼的猫-5 天前
PySide6控件:QFont设置、QColor调色板、QPixmap图像处理与QCursor光标自定义
python·pyqt·个人开发·pyside6
zew10409945885 天前
基于深度学习的手势识别系统设计
人工智能·深度学习·算法·数据集·pyqt·yolov5·训练模型
安然无虞5 天前
31天Python入门——第14天:异常处理
后端·爬虫·python·职场和发展·pyqt
QMT量化交易8 天前
PyQt中使用QTabWidget实现多页面布局的实现方法
python·pyqt
tt55555555555510 天前
pyQt学习笔记——Qt资源文件(.qrc)的创建与使用
笔记·学习·pyqt
Cccc吃吃吃10 天前
python中深浅拷贝以及可变对象和不可变对象
开发语言·jvm·python·beautifulsoup·numpy·pyqt·fastapi
安然无虞13 天前
31天Python入门——第10天:深入理解值传递·引用传递以及深浅拷贝问题
开发语言·后端·python·pyqt