• Pyqt常用代码片段


    MVC

    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')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    自定义代理类

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述

    工具集

    python 中使用的 装饰器
    c(11)
    Rust trait
    C++ trait (c20)

    windows 常用的进程间的通信就是消息队列

    之后会有C++ 20 去写一个客户端的请求程序,和一个微型的服务程序,用于制作一个小网管,PyQt 用于 MVC

    简易的一问一答的模式(http 的 post 和 get 请求,优先使用python 解析分析,这部分工作已经完成,原始CGI 的请求访问,以后也会逐步的淘汰),先用简单的方式完成,3种模式(工厂,调试,和维护)

    C++ libevent 用于 服务代理和报文解析

    Rust(带着看吧,感觉小作坊能用起来的几率太低,但是底层编程的走向,更趋向于用Rust)

  • 相关阅读:
    QDockWidget DEMO 动态添加QDockWidget ,无主窗口,禁止tab重叠
    【牛客网-公司真题-前端入门篇】——百度2021校招Web前端研发工程师笔试卷(第三批)
    怎样优雅劝退他人做自媒体?
    折叠式菜单怎么做编程,初学编程系统化教程初级1上线
    配置nacos组件
    LN论文、五种归一化原理和实现
    从资源隔离、资源配额、存储、网络四个方面认识Docker
    C++ primer 第十七章
    SecretFlow之SCQL部署(P2P方案)避雷纯享版
    Java类的初始化过程
  • 原文地址:https://blog.csdn.net/weixin_45647912/article/details/133074609