add file open dialog
This commit is contained in:
38
main.py
38
main.py
@@ -24,6 +24,10 @@ class MainWindow(QMainWindow):
|
|||||||
self.setDockNestingEnabled(True)
|
self.setDockNestingEnabled(True)
|
||||||
|
|
||||||
self.tabs = self.create_tabs()
|
self.tabs = self.create_tabs()
|
||||||
|
self.create_tab("/home/andi/ws/performanceDb/data/production/logs_2018-09-06_2018-09-06.csv")
|
||||||
|
self.create_tab("/home/andi/ws/ravenlog/example.log")
|
||||||
|
|
||||||
|
|
||||||
self.setCentralWidget(self.tabs)
|
self.setCentralWidget(self.tabs)
|
||||||
self.main_tool_bar = self.create_main_tool_bar()
|
self.main_tool_bar = self.create_main_tool_bar()
|
||||||
self.addToolBar(self.main_tool_bar)
|
self.addToolBar(self.main_tool_bar)
|
||||||
@@ -54,33 +58,43 @@ class MainWindow(QMainWindow):
|
|||||||
tabs = QTabWidget()
|
tabs = QTabWidget()
|
||||||
tabs.setTabsClosable(True)
|
tabs.setTabsClosable(True)
|
||||||
tabs.tabCloseRequested.connect(lambda index: tabs.removeTab(index) )
|
tabs.tabCloseRequested.connect(lambda index: tabs.removeTab(index) )
|
||||||
|
|
||||||
model = LogFileModel("/home/andi/ws/ravenlog/example.log")
|
|
||||||
big_text = BigText(model, self.settings)
|
|
||||||
tabs.addTab(big_text, model.get_tab_name())
|
|
||||||
|
|
||||||
|
|
||||||
model = LogFileModel("/home/andi/ws/performanceDb/data/production/logs_2018-09-06_2018-09-06.csv")
|
|
||||||
big_text = BigText(model, self.settings)
|
|
||||||
tabs.addTab(big_text, model.get_tab_name())
|
|
||||||
|
|
||||||
return tabs
|
return tabs
|
||||||
|
|
||||||
|
def create_tab(self, file: str):
|
||||||
|
if not os.path.isfile(file):
|
||||||
|
message = QMessageBox(QMessageBox.Icon.Warning, "File not found", "'%s' is not a file or cannot be opened" % (file))
|
||||||
|
message.exec()
|
||||||
|
return
|
||||||
|
|
||||||
|
model = LogFileModel(file)
|
||||||
|
big_text = BigText(model, self.settings)
|
||||||
|
self.tabs.addTab(big_text, model.get_tab_name())
|
||||||
|
# open the new tab
|
||||||
|
self.tabs.setCurrentIndex(self.tabs.count()-1)
|
||||||
|
|
||||||
def create_menu_bar(self) -> QMenuBar:
|
def create_menu_bar(self) -> QMenuBar:
|
||||||
menu_bar = QMenuBar()
|
menu_bar = QMenuBar()
|
||||||
|
|
||||||
file_menu = QMenu(self.tr("File", "name of the file menu"), self)
|
file_menu = QMenu(self.tr("File", "name of the file menu"), self)
|
||||||
|
|
||||||
|
open_file = QAction(self.tr("Open..."), self)
|
||||||
|
open_file.triggered.connect(self._open_file)
|
||||||
|
|
||||||
close_action = QAction(self.tr("Close", "menu item to close the application"), self)
|
close_action = QAction(self.tr("Close", "menu item to close the application"), self)
|
||||||
close_action.triggered.connect(self.close)
|
close_action.triggered.connect(self.close)
|
||||||
|
|
||||||
|
file_menu.addAction(open_file)
|
||||||
file_menu.addAction(close_action)
|
file_menu.addAction(close_action)
|
||||||
|
|
||||||
menu_bar.addMenu(file_menu)
|
menu_bar.addMenu(file_menu)
|
||||||
|
|
||||||
return menu_bar
|
return menu_bar
|
||||||
|
|
||||||
def onMyToolBarButtonClick(self, s) -> None:
|
def _open_file(self) -> None:
|
||||||
print("click", s)
|
dialog = QFileDialog(self)
|
||||||
|
(selected_file, _filter) = dialog.getOpenFileName(caption=self.tr("Open File"))
|
||||||
|
self.create_tab(selected_file)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user