def onButtonClicked(self): import inspect, os filepath = os.path.dirname( os.path.abspath(inspect.getfile( inspect.currentframe()))) + "/log/select_history.log" fd = QFileDialog(self) wc = "Csv files {.csv} (*.csv)" self.files = [] current_directory = self.get_current_opened_directory(filepath) tmp_pathes, filter = fd.getOpenFileNamesAndFilter( filter=wc, initialFilter=('*.csv'), directory=current_directory) for path in tmp_pathes: self.files.append(path.encode("utf-8")) # print self.files if len(self.files) != 0: self.get_min_rows_csv(tmp_pathes) self.select_path.setText(self.files[0]) with open(filepath, "w") as f: f.write(self.files[0]) # handler = logging.FileHandler(filepath, mode='w') # logger_topic.addHandler(handler) # logger_topic.info(self.files[0]) else: self.select_path.setText("")
def _handle_load_clicked(self): # path = QFileDialog.getOpenFileName(self, self.tr('Load from File'), '.', self.tr('Bag files {.bag} (*.bag)')) # path = str(QFileDialog.getExistingDirectory(self, "Select Directory")) import inspect filepath = os.path.dirname( os.path.abspath(inspect.getfile( inspect.currentframe()))) + "/log/select_bag.log" current_directory = self.get_current_opened_directory(filepath) fd = QFileDialog(self) wc = "Bag files {.bag} (*.bag)" path, filter = fd.getOpenFileNamesAndFilter( filter=wc, initialFilter=('*.bag'), directory=current_directory) # print path if len(path) != 0: with open(filepath, "w") as f: f.write(path[0]) # if path[0][-4:] == ".bag": # file # print "True" # self.load_bag(path[0]) # files = [path[0]] # else: #dir # print "Else " + path # path = path + "/" # files = self.get_bag_files(path) # print files # # # files = self.get_bag_files("/home/lab/bagfiles/") if path: self.get_features_from_bags(path)
def _save_log(self): dialog = QFileDialog() dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setNameFilter('Text file (*.txt)') dialog.setDefaultSuffix('.txt') dialog.setDirectory(os.getenv('HOME')) if dialog.exec_(): file = open(dialog.selectedFiles()[0], 'w') file.write(self.logTextEdit.toPlainText()) file.close()
def get_file(self): file_dlg = QFileDialog() file_dlg.setFileMode(QFileDialog.AnyFile) if file_dlg.exec_(): map_file_name = file_dlg.selectedFiles() rospy.loginfo('Selected files: %s' % map_file_name) if len(map_file_name) > 0: self.map_path_name = map_file_name[0] self._widget.file_path_edit.setText(self.map_path_name)
def get_folder(self): file_dlg = QFileDialog() file_dlg.setFileMode(QFileDialog.Directory) if file_dlg.exec_(): destination_map_file_name = file_dlg.selectedFiles() rospy.loginfo('Selected files: %s' % destination_map_file_name) if len(destination_map_file_name) > 0: self.destination_map_file_name = destination_map_file_name[0] self._widget.desination_file_name_edit.setText( self.destination_map_file_name)
def load_FTS(self): # Start file dialog directory = os.path.join(rospkg.RosPack().get_path('rqt_simulation'), 'config', 'FTS') File_dialog = QFileDialog(directory=directory, filter='.yaml') FTS_file = File_dialog.getOpenFileName() stream = file(FTS_file[0], 'r') data = yaml.load(stream) stream.close() # Load FTS self.region_of_interest = {} self.region_of_interest = data['FTS']
def get_file_map_to_rviz(self): file_dlg = QFileDialog() file_dlg.setFileMode(QFileDialog.AnyFile) # file_dlg.setFilter("Yaml files (*.yaml)") # print('Hi, you try to get a file') if file_dlg.exec_(): map_file_name = file_dlg.selectedFiles() rospy.loginfo( 'Selected files to extract position of the fiducials: %s' % map_file_name) if len(map_file_name) > 0: self.map_forRviz_file_name = map_file_name[0] self._widget.map_to_rviz_path_edit.setText( self.map_forRviz_file_name)
def onPlpClicked(self): import inspect, os filepath = os.path.dirname( os.path.abspath(inspect.getfile( inspect.currentframe()))) + "/log/save_plp.log" current_directory = self.get_current_opened_directory(filepath) fd = QFileDialog(self) wc = "Csv files {.py} (*.py)" # print current_directory filename, filter = fd.getOpenFileNamesAndFilter( filter=wc, initialFilter=('*.py'), directory=current_directory) if len(filename): self.plp_filename = filename[0] with open(filepath, "w") as f: f.write(self.plp_filename) self.select_path.setText(self.plp_filename)
def get_file_yaml(self): file_dlg = QFileDialog() file_dlg.setFileMode(QFileDialog.AnyFile) # file_dlg.setFilter("Yaml files (*.yaml)") # print('Hi, you try to get a file') # print(self.map_file_name) if file_dlg.exec_(): destination_map_config_file_name = file_dlg.selectedFiles() rospy.loginfo('Selected files: %s' % destination_map_config_file_name) if len(destination_map_config_file_name) > 0: self.destination_map_config_file_name = destination_map_config_file_name[ 0] self._widget.config_map_file_name_edit.setText( self.destination_map_config_file_name) self.read_map()
def __init__(self, title, jsp, num_rows=0): super(JointStatePublisherGui, self).__init__() font = QFont("Helvetica", 9, QFont.Bold) self.hlayout = QHBoxLayout(self) vlayout = QVBoxLayout() glayout = QGridLayout() right_l_lauout = QVBoxLayout() self.listVeiw = QListWidget() self.checkbox = [] self.value_line_edit = [] self.sliders = [] self.positions = [] self.progressbars = [] self.value_last = [] speed_max = enviromnt_conf['joint_speed'] slider_max = speed_max * 1000 position_max = enviromnt_conf['joint_max_position'] progress_max = position_max * 1000 #create joints widget for i in range(0, num_rows): if config[i][0]: g_in_g = QGridLayout() checkbox = QCheckBox(config[i][1]) checkbox.setFont(font) self.checkbox.append(checkbox) value_line_edit = QLineEdit() value_line_edit.setFont(font) value_line_edit.setText("0.0") self.value_line_edit.append(value_line_edit) display_lable = QLabel() display_lable.setFont(font) display_lable.setText("Position:") position_label = QLabel() position_label.setFont(font) position_label.setText("0.0") self.positions.append(position_label) position_progress_bar = QProgressBar() position_progress_bar.setMaximum(progress_max) position_progress_bar.setMinimum(-progress_max) position_progress_bar.setValue(0) self.progressbars.append(position_progress_bar) slider = QSlider() slider.setMaximum(slider_max) slider.setMinimum(-slider_max) slider.setOrientation(Qt.Horizontal) slider.valueChanged.connect(self.slider_value_changed) self.sliders.append(slider) g_in_g.addWidget(checkbox, 0, 0) g_in_g.addWidget(value_line_edit, 0, 1) g_in_g.addWidget(display_lable, 0, 2) g_in_g.addWidget(position_label, 0, 3) g_in_g.addWidget(slider, 1, 0, 1, 2) g_in_g.addWidget(position_progress_bar, 1, 2, 1, 2) glayout.addLayout(g_in_g, i, 0) #create v layout self.import_Btn = QPushButton('Import') self.import_Btn.setFont(font) self.import_Btn.clicked.connect(self.import_Btn_clecked) self.export_Btn = QPushButton('Export') self.export_Btn.setFont(font) self.export_Btn.clicked.connect(self.export_Btn_clicked) self.start_Btn = QPushButton("Start") self.start_Btn.setFont(font) self.start_Btn.clicked.connect(self.start_Btn_clicked) self.reset_Btn = QPushButton('Reset') self.reset_Btn.setFont(font) self.reset_Btn.clicked.connect(self.reset_Btn_clicked) self.record_Btn = QPushButton('Record') self.record_Btn.setFont(font) self.record_Btn.clicked.connect(self.record_Btn_clicked) self.replay_Btn = QPushButton('Repaly') self.replay_Btn.setFont(font) self.replay_Btn.clicked.connect(self.replay_Btn_clicked) self.delete_Btn = QPushButton("Delete") self.delete_Btn.setFont(font) self.delete_Btn.clicked.connect(self.delete_Btn_clicked) self.debug_Btn = QPushButton("Debug") self.debug_Btn.setFont(font) self.debug_Btn.clicked.connect(self.debug_Btn_clicked) vlayout.addWidget(self.import_Btn) vlayout.addWidget(self.export_Btn) vlayout.addWidget(self.start_Btn) vlayout.addWidget(self.reset_Btn) vlayout.addWidget(self.record_Btn) vlayout.addWidget(self.delete_Btn) vlayout.addWidget(self.replay_Btn) vlayout.addWidget(self.debug_Btn) self.master_url = QLineEdit("http://192.168.0.91:11311") self.master_url.setFont(font) self.master_ip = QLineEdit("192.168.0.91") self.master_ip.setFont(font) self.listVeiw.clicked.connect(self.listVeiw_clicked) self.listVeiw.currentRowChanged.connect( self.listVeiw_itemSelectionChanged) self.description = QTextEdit("") self.description.setFont(font) #self.description.setGeometry(0,100,100,500) right_l_lauout.addWidget(self.master_url) right_l_lauout.addWidget(self.master_ip) right_l_lauout.addWidget(self.listVeiw) right_l_lauout.addWidget(self.description) right_l_lauout.setStretch(0, 1) right_l_lauout.setStretch(1, 1) right_l_lauout.setStretch(2, 3) right_l_lauout.setStretch(3, 1) self.num_rows = len(self.checkbox) self.hlayout.addLayout(glayout) self.hlayout.addLayout(vlayout) self.hlayout.addLayout(right_l_lauout) self.setLayout(self.hlayout) self.callback_start = None self.callback_pause = None self.callback_record = None self.callback_reset = None self.callback_replay = None self.callback_replay_stop = None self.callback_delete = None self.callback_debug = None self.callback_import = None self.callback_export = None self.callback_list_clicked = None self.listVeiw_isClicked = False self.listVeiw_current_item = 0 self.listVeiw_len = 0 self.f = QFileDialog()
def load_scenario(self): # Start file dialog GUI directory = os.path.join(rospkg.RosPack().get_path('rqt_simulation'), 'config', 'FTS') File_dialog = QFileDialog(directory=directory, filter='.yaml') scenario_file = File_dialog.getOpenFileName() try: stream = file(scenario_file[0], 'r') except: print('In file ' + self.filename + ' at line ' + str(self.cf.f_lineno) + ': Error no valid scenario file') return False data = yaml.load(stream) # Remove all robots for i in range(0, len(self.tab_list) - 1): self.remove_robot() # Reset map self.reset() # Load map self.world_comboBox.setCurrentIndex( self.world_comboBox.findText(data['Map'])) # Load FTS # Sort the keys is needed for the edge matrix in the map_dialog self.FTS.region_of_interest = data['FTS'] sorted_keys = self.FTS.region_of_interest.keys() sorted_keys.sort() stream.close() self.scenario_file = scenario_file[0] self.current_graphicsScene.load_graphic_from_FTS(self.FTS) # Load robot tabs robot_tabs = data['Tasks'] for i in range(0, len(self.FTS.region_of_interest)): self.tab_list[self.num_robots - 1].robot_comboBox_init.addItem( self.FTS.region_of_interest.keys()[i]) self.tab_list[self.num_robots - 1].robot_comboBox_init.model().sort(0) for i in range(0, len(robot_tabs)): if i > 0: self.add_robot() self.tab_list[i].robot_name_input.setText(robot_tabs.keys()[i]) self.tab_list[i].robot_comboBox.setCurrentIndex( self.tab_list[i].robot_comboBox.findText( robot_tabs[robot_tabs.keys()[i]]['robot_model'])) self.tab_list[i].robot_comboBox_init.setCurrentIndex( self.tab_list[i].robot_comboBox_init.findText( robot_tabs[robot_tabs.keys()[i]]['initial_pose'])) self.tab_list[i].initial_pose[ 'start_' + str(i + 1).zfill(2)]['pose'] = self.FTS.region_of_interest[ self.tab_list[i].robot_comboBox_init.currentText()]['pose'] self.tab_list[i].initial_pose['start_' + str(i + 1).zfill(2)][ 'label'] = self.tab_list[i].robot_comboBox_init.currentText() if robot_tabs[robot_tabs.keys()[i]]['use_qualisys']: self.tab_list[i].robot_localization_checkBox.setCheckState( Qt.Checked) self.tab_list[i].robot_hard_task_input.setText( robot_tabs[robot_tabs.keys()[i]]['tasks']['hard_task']) self.tab_list[i].robot_soft_task_input.setText( robot_tabs[robot_tabs.keys()[i]]['tasks']['soft_task']) self.button_execute_task.setEnabled(True)