-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
65 lines (57 loc) · 2.5 KB
/
main.py
File metadata and controls
65 lines (57 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QStackedWidget, QToolBar, QComboBox, QLabel
from models.data_manager import DataManager
from views.home import HomeView
from views.store import StoreView
from views.clean import CleanView
from views.export import ExportView
from views.modeling import ModelingView # НОВЫЙ ИМПОРТ
class MainController(QMainWindow):
def __init__(self):
super().__init__()
# Загрузка стиля
try:
with open("style.qss", "r", encoding="utf-8") as f:
self.setStyleSheet(f.read())
except FileNotFoundError:
print("Файл стилей style.qss не найден")
self.model = DataManager()
self.setWindowTitle("derDate Pro: Smart Data Cleaner")
self.resize(1100, 800)
# Глобальный AppBar
self.toolbar = self.addToolBar("Files")
self.toolbar.addWidget(QLabel(" 📂 Текущий объект: "))
self.file_combo = QComboBox()
self.file_combo.setMinimumWidth(300)
self.file_combo.currentIndexChanged.connect(self.sync_file)
self.toolbar.addWidget(self.file_combo)
self.stack = QStackedWidget()
self.setCentralWidget(self.stack)
self.stack.addWidget(HomeView(self)) # 0
self.stack.addWidget(StoreView(self)) # 1
self.stack.addWidget(CleanView(self)) # 2
self.stack.addWidget(ExportView(self)) # 3
self.stack.addWidget(ModelingView(self)) # 4 - SQL ЛАБОРАТОРИЯ
# ... остальные методы (sync_file, update_appbar, switch_page) без изменений ...
def sync_file(self):
name = self.file_combo.currentText()
if name:
self.model.active_file_name = name
current = self.stack.currentWidget()
if hasattr(current, "refresh"): current.refresh()
def update_appbar(self):
self.file_combo.blockSignals(True)
self.file_combo.clear()
self.file_combo.addItems(self.model.all_files.keys())
self.file_combo.setCurrentText(self.model.active_file_name or "")
self.file_combo.blockSignals(False)
self.sync_file()
def switch_page(self, index):
self.stack.setCurrentIndex(index)
current = self.stack.currentWidget()
if hasattr(current, "refresh"): current.refresh()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainController()
window.show()
sys.exit(app.exec())