def input_dialog(self, delete=False): dialog = QtWidgets.QDialog() dialog.setWindowTitle("Select file to modify") file_label = QtWidgets.QLabel("File: ") filepath = FileDialog() # select which file to change filepath.directory = os.path.join(filepath.directory, 'models') filepath.filter = "" file_layout = QtWidgets.QHBoxLayout() file_layout.addWidget(file_label) file_layout.addWidget(filepath) newname_frame = QtWidgets.QFrame() new_name_label = QtWidgets.QLabel("New name: ") new_name_input = QtWidgets.QLineEdit() new_name_input.setPlaceholderText("new name") new_name_layout = QtWidgets.QHBoxLayout() new_name_layout.addWidget(new_name_label) new_name_layout.addWidget(new_name_input) newname_frame.setLayout(new_name_layout) if delete: newname_frame.hide() # buttons cancel_btn = QtWidgets.QPushButton("Cancel") cancel_btn.clicked.connect(dialog.close) ok_btn = QtWidgets.QPushButton("OK") ok_btn.clicked.connect(dialog.close) ok_btn.clicked.connect(lambda: self.check_inputs(inputs=[filepath.filepath, new_name_input.text()], delete=delete)) button_layout = QtWidgets.QHBoxLayout() button_layout.addWidget(cancel_btn) button_layout.addWidget(ok_btn) layout = QtWidgets.QVBoxLayout() layout.addLayout(file_layout) # layout.addLayout(new_name_layout) layout.addWidget(newname_frame) layout.addLayout(button_layout) dialog.setLayout(layout) dialog.exec_()
def __init__(self, test, label): super(DataLoaderWidget, self).__init__() self.setWindowTitle("Select file to load data from") self.setFixedHeight(300) # initialize args to be used later self.x_fwd = "" self.x_rev = "" self.y = "" self.test = test self.label = label # create widgets text_label = QtWidgets.QLabel( "Supported file types: .csv, .txt, and .npy \ \nGo to [url for github docs] for example file formats." ) # radio buttons radio_btns_label = QtWidgets.QLabel("File extension") csv_txt_btn = QtWidgets.QRadioButton() csv_txt_btn.setChecked(True) csv_txt_btn.setText('.csv or .txt') npy_btn = QtWidgets.QRadioButton() npy_btn.setText('.npy') radio_btn_layout = QtWidgets.QHBoxLayout() radio_btn_layout.addWidget(radio_btns_label) radio_btn_layout.addWidget(csv_txt_btn) radio_btn_layout.addWidget(npy_btn) # filepath widget filepath_dialog = FileDialog() filepath_dialog.directory = os.path.join(filepath_dialog.directory, 'data') filepath_dialog.filter = "Text, CSV files (*.txt; *.csv);; Text files (*.txt);; CSV files (*.csv)" npy_filepaths_dialog = MultiFileDialog() npy_filepaths_dialog.directory = os.path.join( npy_filepaths_dialog.directory, 'data') npy_filepaths_dialog.filter = "Numpy files (*.npy)" npy_filepaths_dialog.setVisible(False) csv_txt_btn.toggled.connect(lambda: filepath_dialog.setVisible(True)) csv_txt_btn.toggled.connect( lambda: npy_filepaths_dialog.setVisible(False)) npy_btn.toggled.connect(lambda: filepath_dialog.setVisible(False)) npy_btn.toggled.connect(lambda: npy_filepaths_dialog.setVisible(True)) # buttons cancel_btn = QtWidgets.QPushButton("Cancel") # cancel_btn.clicked.connect(self.input_params.close) cancel_btn.clicked.connect(self.close) train_model_btn = QtWidgets.QPushButton(self.label) # train_model_btn.clicked.connect(self.input_params.close) train_model_btn.clicked.connect(self.close) train_model_btn.clicked.connect(lambda: self.process_selected_files( inputs=[filepath_dialog.filepath, npy_filepaths_dialog.filepaths], test=self.test)) button_layout = QtWidgets.QHBoxLayout() button_layout.addWidget(cancel_btn) button_layout.addWidget(train_model_btn) # Create layout and add widgets layout = QtWidgets.QVBoxLayout() layout.addWidget(text_label) layout.addLayout(radio_btn_layout) layout.addWidget(filepath_dialog) layout.addWidget(npy_filepaths_dialog) layout.addLayout(button_layout) self.setLayout(layout) self.exec_()