создать новую папку и файл и сделать их читаемыми во всех скриптах приложения PyQt5 - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь создать новую папку и новый файл базы данных, которые будут страницей запуска приложения; мне нужно, чтобы имя папки и имя файла БД отображались (глобально) во всех сценариях. файл 1

import os
import pandas as pd
from PyQt5.QtCore import *
from PyQt5 import QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class Window(QMainWindow):
    def __init__(self):
        super().__init__()
        self.title = "Create a New Project"
        self.setGeometry(200, 200 , 700, 400)
        self.InitWindow()
    def InitWindow(self):
        self.setWindowTitle(self.title)
        self.labelA = QLabel('  New Project:', self)
        self.labelA.setGeometry(50, 50, 120, 30)
        self.labelA.setStyleSheet('QLabel { color: blue; background-color: lightgreen; font-family: Times New Roman ; font-weight: bold; font-size: 10pt}')
        self.lineA = QLineEdit(self)
        self.lineA.setGeometry(200, 50, 300, 30)
        self.lineA.setStyleSheet('QLineEdit { color: blue; background-color: lightgreen; font-family: Times New Roman ; font-weight: bold; font-size: 10pt}')
        #self.lineA.textChanged.connect(self.project)
        self.btn1 = QPushButton("Create", self)
        self.btn1.setStyleSheet('QPushButton { color: blue; background-color: lightgreen; font-family: Times New Roman ; font-weight: bold; font-size: 10pt}')
        self.btn1.setGeometry(600, 50, 70, 30)
        self.btn1.clicked.connect(self.project)
        self.labelc = QLabel('  DB File:', self)
        self.labelc.setGeometry(50, 250, 120, 30)
        self.labelc.setStyleSheet('QLabel { color: blue; background-color: lightgreen; font-family: Times New Roman ; font-weight: bold; font-size: 10pt}')
        self.linec = QLineEdit(self)
        self.linec.setGeometry(200, 250, 300, 30)
        self.linec.setObjectName("linec")
        self.linec.setStyleSheet('QLineEdit { color: blue; background-color: lightgreen; font-family: Times New Roman ; font-weight: bold; font-size: 10pt}')
        #self.linec.textChanged.connect(self.project)
        self.btn3 = QPushButton("Browse", self)
        self.btn3.setStyleSheet('QPushButton { color: blue; background-color: lightgreen; font-family: Times New Roman ; font-weight: bold; font-size: 10pt}')
        self.btn3.setGeometry(600, 250, 70, 30)
        self.btn3.clicked.connect(self.database_file)

    def project(self):
        Dirname = str(QFileDialog.getExistingDirectory(self, 'Select Directory'))
        if Dirname:
            self.lineA.setText(Dirname)
        self.database_file(Dirname)
        print(Dirname)
        return Dirname
    def database_file(self, dir_name):
        global path
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        Name, _ = QFileDialog.getSaveFileName(self, "Data Base File()", "",
                                                  "Data base Files (*.db)")
        if Name:
            file = open(Name,'w')
            self.linec.setText(Name)
        path = os.path.join(dir_name, Name )
        print(path)
        return path

if __name__ == '__main__':
    import sys
    App = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(App.exec_())

, а затем необходимо работать с файлом базы данных и папкой проекта во всех сценариях, учитывая, что имена папок и файлов можно изменять для каждого нового проекта. и один из других сценариев может быть таким

import sys
import sqlite3
import pandas as pd
conn = sqlite3.connect('path')
data = pd.read_sql_query("select * from Curves_Calc_table ", conn)

data.to_csv('Dirname/data.csv',sep='\t' )

. Любой совет будет оценен

.
...