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)