mirror of
https://github.com/shizand/statapp.git
synced 2025-04-01 23:23:45 +03:00
добавил начальную версию datamodel
This commit is contained in:
parent
be853a81aa
commit
8682ba0be2
@ -1,6 +1,6 @@
|
||||
from PySide6.QtCore import Slot
|
||||
from PySide6.QtWidgets import QMainWindow
|
||||
|
||||
from statapp.models.data_model import DataModel
|
||||
from statapp.ui.ui_main_window import Ui_MainWindow
|
||||
|
||||
|
||||
@ -10,3 +10,5 @@ class MainWindow(QMainWindow):
|
||||
self.ui = Ui_MainWindow()
|
||||
self.ui.setupUi(self)
|
||||
|
||||
self.model = DataModel()
|
||||
self.ui.tableView.setModel(self.model)
|
||||
|
46
statapp/models/data_model.py
Normal file
46
statapp/models/data_model.py
Normal file
@ -0,0 +1,46 @@
|
||||
import numpy as np
|
||||
from PySide6 import QtCore
|
||||
from PySide6.QtCore import Qt
|
||||
|
||||
|
||||
class DataModel(QtCore.QAbstractTableModel):
|
||||
def __init__(self, data=np.array([[1, 2, 3], [4, 5, 6]])):
|
||||
super().__init__()
|
||||
|
||||
self._data = data
|
||||
|
||||
def rowCount(self, index):
|
||||
return self._data.shape[0]
|
||||
|
||||
def columnCount(self, index):
|
||||
return self._data.shape[1]
|
||||
|
||||
def headerData(self, section: int, orientation: Qt.Orientation, role: int = ...):
|
||||
if role == Qt.DisplayRole:
|
||||
if orientation == Qt.Orientation.Horizontal:
|
||||
|
||||
if section == 0:
|
||||
return 'Y'
|
||||
|
||||
return f'X{section}'
|
||||
|
||||
return None
|
||||
|
||||
def flags(self, index):
|
||||
return Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable
|
||||
|
||||
def setData(self, index, value, role):
|
||||
if role == Qt.EditRole:
|
||||
try:
|
||||
value = int(value)
|
||||
except ValueError:
|
||||
return False
|
||||
self._data[index.row(), index.column()] = value
|
||||
return True
|
||||
return False
|
||||
|
||||
def data(self, index, role):
|
||||
if role == Qt.DisplayRole:
|
||||
return int(self._data[index.row(), index.column()])
|
||||
|
||||
return None
|
@ -26,7 +26,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTableView" name="tableView"/>
|
||||
<widget class="QTableView" name="tableView">
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@ -36,7 +40,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>22</height>
|
||||
<height>27</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="filemenu">
|
||||
|
4
statapp/ui/ui_main_window.py
generated
4
statapp/ui/ui_main_window.py
generated
@ -39,13 +39,14 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.tableView = QTableView(self.centralwidget)
|
||||
self.tableView.setObjectName(u"tableView")
|
||||
self.tableView.verticalHeader().setVisible(False)
|
||||
|
||||
self.gridLayout.addWidget(self.tableView, 1, 0, 1, 1)
|
||||
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QMenuBar(MainWindow)
|
||||
self.menubar.setObjectName(u"menubar")
|
||||
self.menubar.setGeometry(QRect(0, 0, 800, 22))
|
||||
self.menubar.setGeometry(QRect(0, 0, 800, 27))
|
||||
self.filemenu = QMenu(self.menubar)
|
||||
self.filemenu.setObjectName(u"filemenu")
|
||||
self.generatemenu = QMenu(self.menubar)
|
||||
@ -83,4 +84,3 @@ class Ui_MainWindow(object):
|
||||
self.modelmenu.setTitle(QCoreApplication.translate("MainWindow", u"\u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435", None))
|
||||
self.helpmenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0421\u043f\u0440\u0430\u0432\u043a\u0430", None))
|
||||
# retranslateUi
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user