Skip to content

Commit

Permalink
Changed default example, added signals for new settings. Fixed widget…
Browse files Browse the repository at this point in the history
… resize policies
  • Loading branch information
02bwilson committed Aug 4, 2023
1 parent 0a1ef82 commit 7bc4e84
Showing 1 changed file with 55 additions and 19 deletions.
74 changes: 55 additions & 19 deletions Widgets/MainWidget.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import threading

import qdarktheme
from PyQt6.QtCore import QThread
from PyQt6 import QtGui
from PyQt6.QtCore import QThread, Qt, QModelIndex

from PyQt6.QtWidgets import QWidget, QGridLayout
from PyQt6.QtWidgets import QWidget, QGridLayout, QSizePolicy, QPushButton

from DataManager import DataManager
from Widgets.AddSignal import AddSignal
from Widgets.FFTPlot import FFTPlot
from Widgets.Settings import Settings
from Widgets.SignalTable import SignalTable
from Widgets.TimePlot import TimePlot

Expand All @@ -19,40 +19,76 @@ def __init__(self):

# Setup vars
self.mainGridLayout = QGridLayout()
self.addSignalButton = QPushButton()
self.removeSignalButton = QPushButton()

self.timePlot = TimePlot()
self.fftPlot = FFTPlot()
self.signalTable = SignalTable()
self.addSignalMenu = AddSignal()
self.dataManager = DataManager()
self.settings = Settings()

self.dataManager.addSignal({"name": "Example_sin_10_t",
"operator": "+",
signalData = {"name": "Example_sin_1_t",
"operator": "*",
"function": "sin",
"alpha": 1,
"beta": 10,
"gamma": 0})

"beta": 1,
"gamma": 0}
self.dataManager.addSignal(signalData)
self.signalTable.signalAdded(signalData)

self.addSignalMenu.addSignalSignal.connect(self.dataManager.addSignal)
self.addSignalMenu.addSignalSignal.connect(self.signalTable.signalAdded)

self.settings.settingsDisplay.speedChanged.connect(self.dataManager.setSpeed)
self.settings.settingsDisplay.modChanged.connect(self.dataManager.setMod)

self.signalTable.signalDeleted.connect(self.dataManager.removeSignal)
self.signalTable.signalDeleted.connect(self.addSignalMenu.removeSignal)

self.addSignalButton.pressed.connect(self.addSignalMenu.show)

self.dataManager.newTimeData.connect(self.timePlot.requestPlot)
self.dataManager.newFFTData.connect(self.fftPlot.requestPlot)

self.timePlot.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
self.mainGridLayout.addWidget(self.timePlot, 0, 0)
self.fftPlot.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
self.mainGridLayout.addWidget(self.fftPlot, 1, 0, 1, 1)

self.dataThread = QThread()
self.dataManager.moveToThread(self.dataThread)
self.dataThread.started.connect(self.dataManager.startGatherData)
self.dataThread.start()
self.signalTable.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Expanding)
self.mainGridLayout.addWidget(self.signalTable, 0, 1, 1, 1)

self.signalTable.addSignalButton.pressed.connect(self.addSignalMenu.show)
self.buttonsLayout = QGridLayout()
self.buttonsLayout.setAlignment(Qt.AlignmentFlag.AlignBottom)

self.dataManager.newTimeData.connect(self.timePlot.plot)
self.dataManager.newFFTData.connect(self.fftPlot.plot)
self.addSignalButton.setStyleSheet("border:none; text-align:center; color: green; font-size: 24pt;")
self.addSignalButton.setText("+")
self.buttonsLayout.addWidget(self.addSignalButton, 0, 0, Qt.AlignmentFlag.AlignBottom)

self.mainGridLayout.addWidget(self.timePlot)
self.mainGridLayout.addWidget(self.fftPlot, 2, 0)
self.mainGridLayout.addWidget(self.signalTable, 3, 0)
self.removeSignalButton.pressed.connect(self.removePressed)

self.removeSignalButton.setStyleSheet("border:none; text-align:center; color: red; font-size: 24pt;")
self.removeSignalButton.setText("-")
self.buttonsLayout.addWidget(self.removeSignalButton, 1, 0, Qt.AlignmentFlag.AlignBottom)

self.buttonsLayout.addWidget(self.settings, 2, 0, Qt.AlignmentFlag.AlignBottom)

self.mainGridLayout.addLayout(self.buttonsLayout, 1, 1, Qt.AlignmentFlag.AlignBottom)

qdarktheme.setup_theme("dark")

self.setLayout(self.mainGridLayout)

def removePressed(self):
curRow = self.signalTable.tableView.selectionModel().currentIndex().row()
print(curRow)
signalName = self.signalTable.tableModel.item(curRow, 0).text()

self.dataManager.removeSignal(signalName)
self.signalTable.tableModel.clearItemData(curRow)
def close(self):
super().close()

self.dataManager.continueFlag = False

0 comments on commit 7bc4e84

Please sign in to comment.