File opening working.
(Only the popup that sets the variable.)
This commit is contained in:
commit
2797c3ca44
5 changed files with 129 additions and 0 deletions
4
connect_gui.py
Normal file
4
connect_gui.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
def connect_gui(app):
|
||||
app.main_window.openFile.triggered.connect(app.utils.open_file)
|
55
gui/raw_ui/main_window.ui
Normal file
55
gui/raw_ui/main_window.ui
Normal file
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>600</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget"/>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="fileMenu">
|
||||
<property name="title">
|
||||
<string>File</string>
|
||||
</property>
|
||||
<addaction name="openFile"/>
|
||||
</widget>
|
||||
<addaction name="fileMenu"/>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="openFile">
|
||||
<property name="checkable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+O</string>
|
||||
</property>
|
||||
<property name="visible">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
18
gui/raw_ui/ui_to_py.py
Normal file
18
gui/raw_ui/ui_to_py.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import os
|
||||
|
||||
input_debug = input("Do you want to debug the gui scripts? (Make gui scripts executable.) (y/n): ")
|
||||
|
||||
debug = input_debug == "y"
|
||||
|
||||
params = "-o"
|
||||
if debug:
|
||||
params = "-xo"
|
||||
|
||||
paths = {
|
||||
"main_window.ui": "main_window.py"
|
||||
}
|
||||
|
||||
for ui_file, script_out in paths.items():
|
||||
os.system(f"pyuic6 {ui_file} {params} ../{script_out}")
|
31
main.py
Normal file
31
main.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
from PyQt6 import QtWidgets
|
||||
from gui.main_window import Ui_MainWindow
|
||||
from utils import Utils
|
||||
from connect_gui import connect_gui
|
||||
|
||||
|
||||
class BreadEditor:
|
||||
def __init__(self):
|
||||
self.utils = Utils(self)
|
||||
self.open_files = []
|
||||
|
||||
self.qt_app = QtWidgets.QApplication(sys.argv)
|
||||
|
||||
self.QTMainWindow = QtWidgets.QMainWindow()
|
||||
|
||||
self.main_window = Ui_MainWindow()
|
||||
self.main_window.setupUi(self.QTMainWindow)
|
||||
|
||||
connect_gui(self)
|
||||
|
||||
def run(self):
|
||||
self.QTMainWindow.show()
|
||||
sys.exit(self.qt_app.exec())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
editor = BreadEditor()
|
||||
editor.run()
|
21
utils.py
Normal file
21
utils.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
from pathlib import Path
|
||||
from PyQt6.QtWidgets import QFileDialog
|
||||
|
||||
|
||||
class Utils:
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
|
||||
self.home_path = str(Path.home())
|
||||
|
||||
def open_file(self):
|
||||
dialog = QFileDialog(self.app.QTMainWindow)
|
||||
dialog.setDirectory(self.home_path)
|
||||
dialog.setFileMode(QFileDialog.FileMode.ExistingFiles)
|
||||
dialog.setNameFilters(["Binary (*.bin)", "Any (*)"])
|
||||
dialog.setViewMode(QFileDialog.ViewMode.List)
|
||||
|
||||
if dialog.exec():
|
||||
self.app.open_files += dialog.selectedFiles()
|
Loading…
Reference in a new issue