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)

相关推荐
yivifu2 天前
pyqt中以鼠标所在位置为锚点缩放图片
python·pyqt·以鼠标为锚点缩放图片
QMT量化交易3 天前
如何解决PyQt从主窗口打开新窗口时出现闪退的问题
python·pyqt
m0_376628187 天前
工控系统前端设计(pyqt)
pyqt
Humbunklung7 天前
PySide6 GUI 学习笔记——常用类及控件使用方法(常用类矩阵QRect)
笔记·python·学习·pyqt
CresCent_Charles13 天前
解决import pyqtgraph.opengl报错
python·pyqt
mahuifa13 天前
pyqt环境配置
python·qt·pycharm·pyqt·环境配置
shanks6614 天前
【PyQt】俄罗斯方块的小程序开发
pyqt·软件开发
越甲八千22 天前
pyqt SQL Server 数据库查询-优化2
数据库·windows·pyqt
豆芽81922 天前
决策树(DecisionTree)
python·决策树·机器学习·pyqt·sklearn
utmhikari23 天前
【日常随笔】万字长文,如何用pyside6开发一个python桌面工具
前端·python·pyqt