Files
gwui/main.py
Rainer Koschnick b72b496506 Still implementing
2025-07-13 23:24:50 +02:00

86 lines
2.9 KiB
Python

import sys
from PySide6 import QtWidgets
from PySide6.QtWidgets import (
QApplication,
QWidget,
QRadioButton,
QButtonGroup,
QGroupBox,
QVBoxLayout,
QHBoxLayout,
QLabel,
QFileDialog,
)
from PySide6.QtCore import Slot
import json
import os
from readdisk import ReadDiskWindow
from ui_main_window import Ui_MainWindow
from ui_read_disk import Ui_ReadDialog
# Inherit only from the Qt base class
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.settings = {}
# Create an instance of the UI class
self.ui = Ui_MainWindow()
# Call its setupUi method, passing in the current window (self)
self.ui.setupUi(self)
# 1. Create the logical group. Pass `self` for parentage.
self.logical_button_group = QButtonGroup(self)
# 2. Add all radio buttons from different containers.
# Assign a unique integer ID to each one. This is best practice.
self.logical_button_group.addButton(self.ui.rb_read, 1)
self.logical_button_group.addButton(self.ui.rb_write, 2)
self.logical_button_group.addButton(self.ui.rb_clean_heads, 3)
self.logical_button_group.addButton(self.ui.rb_erase_disk, 4)
self.logical_button_group.addButton(self.ui.rb_convert_files, 5)
self.logical_button_group.addButton(self.ui.rb_info, 6)
self.logical_button_group.addButton(self.ui.rb_measure, 7)
self.logical_button_group.addButton(self.ui.rb_pin_level, 8)
self.logical_button_group.addButton(self.ui.rb_reset, 9)
self.logical_button_group.addButton(self.ui.rb_rpm, 10)
self.logical_button_group.addButton(self.ui.rb_seek, 11)
self.logical_button_group.addButton(self.ui.rb_delays, 12)
self.logical_button_group.addButton(self.ui.rb_update_firmware, 13)
self.ui.rb_read.setChecked(True)
self.ui.pb_close.clicked.connect(self.close)
self.ui.action_quit.triggered.connect(self.close)
self.ui.pb_execute.clicked.connect(self.on_execute)
@Slot()
def on_execute(self):
read_disk_window = ReadDiskWindow()
if self.load_settings("settings.json"):
read_disk_window.set_settings(self.settings)
read_disk_window.exec()
self.settings = read_disk_window.get_settings()
self.save_settings("settings.json")
def load_settings(self, file_name):
if file_name:
if os.path.exists(file_name):
with open(file_name, 'r') as f:
self.settings = json.load(f)
return True
return False
def save_settings(self, file_name):
if file_name:
with open(file_name, 'w') as f:
json.dump(self.settings, f, indent=2)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())