def __init__(self, parent): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) self.setWidgetResizable(True) self.setBackgroundRole(QPalette.Light)
def __init__(self, parent): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) self.setSelectionMode(QAbstractItemView.ExtendedSelection) self.setEditTriggers(QAbstractItemView.DoubleClicked | QAbstractItemView.SelectedClicked) self.setDragEnabled(True) self.setAcceptDrops(True) self.setDragDropMode(QAbstractItemView.InternalMove) self.itemChanged.connect(self.item_changed) self.itemSelectionChanged.connect(self.selection_changed) self.button_add = QPushButton(self.tr('Add'), self) self.button_remove = QPushButton(self.tr('Remove'), self) self.button_clear = QPushButton(self.tr('Clear'), self) self.button_import = QPushButton(self.tr('Import'), self) self.button_export = QPushButton(self.tr('Export'), self) self.button_add.clicked.connect(self.add_item) self.button_remove.clicked.connect(self.remove_item) self.button_clear.clicked.connect(self.clear_list) self.button_import.clicked.connect(self.import_list) self.button_export.clicked.connect(self.export_list) self.clear_list()
def __init__(self, parent): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) self.setMaxVisibleItems(20) self.setFocusPolicy(Qt.StrongFocus)
def __init__(self, parent): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) self.setOpenExternalLinks(True) self.setContentsMargins(3, 3, 3, 3)
def __init__(self, orientation, parent): super().__init__(orientation, parent) self.main = wordless_misc.find_wordless_main(parent) self.setHandleWidth(0) self.setChildrenCollapsible(False)
def wordless_widgets_settings_measures(parent, tab): main = wordless_misc.find_wordless_main(parent) label_settings_measures = QLabel(parent.tr('Advanced Settings:'), parent) button_settings_measures = QPushButton(parent.tr('Settings...'), parent) button_settings_measures.clicked.connect(lambda: main.wordless_settings.load(tab = tab)) return label_settings_measures, button_settings_measures
def wordless_widgets_measure_adjusted_freq(parent): main = wordless_misc.find_wordless_main(parent) label_measure_adjusted_freq = QLabel(parent.tr('Measure of Adjusted Frequency:'), parent) combo_box_measure_adjusted_freq = wordless_box.Wordless_Combo_Box(parent) combo_box_measure_adjusted_freq.addItems(list(main.settings_global['measures_adjusted_freq'].keys())) return (label_measure_adjusted_freq, combo_box_measure_adjusted_freq)
def wordless_widgets_measure_dispersion(parent): main = wordless_misc.find_wordless_main(parent) label_measure_dispersion = QLabel(parent.tr('Measure of Dispersion:'), parent) combo_box_measure_dispersion = wordless_box.Wordless_Combo_Box(parent) combo_box_measure_dispersion.addItems(list(main.settings_global['measures_dispersion'].keys())) return (label_measure_dispersion, combo_box_measure_dispersion)
def __init__(self, parent, orientation='Horizontal'): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) if orientation == 'Horizontal': self.setFrameShape(QFrame.HLine) else: self.setFrameShape(QFrame.VLine) self.setStyleSheet('color: #D0D0D0;')
def __init__(self, text, parent): main = wordless_misc.find_wordless_main(parent) super().__init__( f''' {main.settings_global["styles"]["style_dialog"]} <body> {text} </body> ''', parent) self.setWordWrap(True)
def wordless_widgets_context_settings(parent, tab): main = wordless_misc.find_wordless_main(parent) label_context_settings = QLabel(parent.tr('Context Settings:'), parent) button_context_settings = QPushButton(parent.tr('Settings...'), parent) dialog_context_settings = wordless_dialog_context_settings.Wordless_Dialog_Context_Settings(main, tab = tab) main.__dict__[f'wordless_context_settings_{tab}'] = dialog_context_settings button_context_settings.clicked.connect(main.__dict__[f'wordless_context_settings_{tab}'].exec_) return label_context_settings, button_context_settings
def __init__(self, parent): super().__init__(parent) self.FONT_SIZES = { 'Extra Small': 8, 'Small': 10, 'Medium (Recommended)': 12, 'Large': 14, 'Extra Large': 16 } self.main = wordless_misc.find_wordless_main(parent) self.addItems(list(self.FONT_SIZES))
def wordless_widgets_filter_measures(parent, filter_min=-10000, filter_max=10000): def min_changed(): if spin_box_min.value() > spin_box_max.value(): spin_box_max.setValue(spin_box_min.value()) def max_changed(): if spin_box_min.value() > spin_box_max.value(): spin_box_min.setValue(spin_box_max.value()) def precision_changed(): precision = main.settings_custom['data']['precision_decimal'] spin_box_min.setDecimals(precision) spin_box_max.setDecimals(precision) spin_box_min.setSingleStep(0.1**precision) spin_box_max.setSingleStep(0.1**precision) main = wordless_misc.find_wordless_main(parent) label_min = QLabel(parent.tr('From'), parent) (spin_box_min, checkbox_min_no_limit) = wordless_widgets_no_limit(parent, double=True) label_max = QLabel(parent.tr('To'), parent) (spin_box_max, checkbox_max_no_limit) = wordless_widgets_no_limit(parent, double=True) spin_box_min.setRange(filter_min, filter_max) spin_box_max.setRange(filter_min, filter_max) spin_box_min.valueChanged.connect(min_changed) spin_box_max.valueChanged.connect(max_changed) main.wordless_settings.wordless_settings_changed.connect(precision_changed) min_changed() max_changed() precision_changed() return (label_min, spin_box_min, checkbox_min_no_limit, label_max, spin_box_max, checkbox_max_no_limit)
def __init__(self, parent): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) self.setObjectName('wordless-wrapper') self.setStyleSheet(''' QWidget#wordless-wrapper { background-color: #FFF; } ''') self.wrapper_table = QWidget(self) self.wrapper_table.setLayout(Wordless_Layout()) self.wrapper_table.layout().setContentsMargins(8, 8, 6, 6) self.wrapper_right = QWidget(self) self.wrapper_right.setFixedWidth(340) self.scroll_area_settings = Wordless_Scroll_Area(self) self.button_reset_settings = wordless_button.Wordless_Button_Reset_Settings( self) self.wrapper_settings = QWidget(self) self.wrapper_settings.setLayout(Wordless_Layout()) self.wrapper_settings.layout().setContentsMargins(6, 4, 6, 4) self.scroll_area_settings.setWidget(self.wrapper_settings) self.wrapper_right.setLayout(Wordless_Layout()) self.wrapper_right.layout().addWidget(self.scroll_area_settings, 0, 0) self.wrapper_right.layout().addWidget(self.button_reset_settings, 1, 0) self.wrapper_right.layout().setContentsMargins(0, 8, 8, 6) self.setLayout(Wordless_Layout()) self.layout().addWidget(self.wrapper_table, 0, 0) self.layout().addWidget(self.wrapper_right, 0, 1) self.layout().setContentsMargins(0, 0, 0, 0)
def __init__(self, parent): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) self.setMaxVisibleItems(25)
def __init__(self, text, parent): super().__init__(text, parent) self.main = wordless_misc.find_wordless_main(parent)
def __init__(self, parent): super().__init__(parent) self.main = wordless_misc.find_wordless_main(parent) self.currentChanged.connect(self.current_changed)
def wordless_widgets_fig_settings(parent): def graph_type_changed(): if combo_box_graph_type.currentText() == parent.tr('Line Chart'): combo_box_use_file.setEnabled(False) use_data_changed() elif combo_box_graph_type.currentText() == parent.tr('Word Cloud'): combo_box_use_file.setEnabled(True) checkbox_use_pct.setEnabled(False) checkbox_use_cumulative.setEnabled(False) def use_data_changed(): if combo_box_graph_type.currentText() == parent.tr('Line Chart'): if combo_box_use_data.currentText() == parent.tr('Frequency'): checkbox_use_pct.setEnabled(True) checkbox_use_cumulative.setEnabled(True) else: checkbox_use_pct.setEnabled(False) checkbox_use_cumulative.setEnabled(False) def wordless_files_changed(): if combo_box_use_file.count() == 1: use_file_old = '' else: use_file_old = combo_box_use_file.currentText() combo_box_use_file.clear() for file in main.wordless_files.get_selected_files(): combo_box_use_file.addItem(file['name']) combo_box_use_file.addItem(parent.tr('Total')) if use_file_old and combo_box_use_file.findText(use_file_old) > -1: combo_box_use_file.setCurrentText(use_file_old) main = wordless_misc.find_wordless_main(parent) label_graph_type = QLabel(parent.tr('Graph Type:'), parent) combo_box_graph_type = wordless_box.Wordless_Combo_Box(parent) label_use_file = QLabel(parent.tr('Use File:'), parent) combo_box_use_file = wordless_box.Wordless_Combo_Box(parent) label_use_data = QLabel(parent.tr('Use Data:'), parent) combo_box_use_data = wordless_box.Wordless_Combo_Box(parent) # Clip long file names combo_box_use_file.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLengthWithIcon) checkbox_use_pct = QCheckBox(parent.tr('Use Percentage Data'), parent) checkbox_use_cumulative = QCheckBox(parent.tr('Use Cumulative Data'), parent) combo_box_graph_type.addItems([parent.tr('Line Chart'), parent.tr('Word Cloud')]) combo_box_graph_type.currentTextChanged.connect(graph_type_changed) combo_box_use_data.currentTextChanged.connect(use_data_changed) main.wordless_files.table.itemChanged.connect(wordless_files_changed) combo_box_use_file.wordless_files_changed = wordless_files_changed graph_type_changed() use_data_changed() wordless_files_changed() return (label_graph_type, combo_box_graph_type, label_use_file, combo_box_use_file, label_use_data, combo_box_use_data, checkbox_use_pct, checkbox_use_cumulative)
def __init__(self, parent, headers, header_orientation='horizontal', cols_stretch=[], drag_drop_enabled=False): self.main = wordless_misc.find_wordless_main(parent) self.headers = headers self.header_orientation = header_orientation self.cols_stretch = cols_stretch self.settings = self.main.settings_custom if header_orientation == 'horizontal': super().__init__(1, len(self.headers), parent) self.setHorizontalHeaderLabels(self.headers) else: super().__init__(len(self.headers), 1, parent) self.setVerticalHeaderLabels(self.headers) self.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.verticalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) for col in self.find_col(cols_stretch): self.horizontalHeader().setSectionResizeMode( col, QHeaderView.Stretch) self.setEditTriggers(QAbstractItemView.NoEditTriggers) self.setSelectionBehavior(QAbstractItemView.SelectRows) if drag_drop_enabled: self.setDragEnabled(True) self.setAcceptDrops(True) self.viewport().setAcceptDrops(True) self.setDragDropMode(QAbstractItemView.InternalMove) self.setDragDropOverwriteMode(False) self.horizontalHeader().setHighlightSections(False) self.verticalHeader().setHighlightSections(False) self.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel) self.setHorizontalScrollMode(QAbstractItemView.ScrollPerPixel) if self.header_orientation == 'horizontal': self.setStyleSheet(''' QTableView { outline: none; color: #292929; } QTableView::item:hover { background-color: #EEE; color: #292929; } QTableView::item:selected { background-color: #EEE; color: #292929; } QHeaderView::section { color: #FFF; font-weight: bold; } QHeaderView::section:horizontal { background-color: #5C88C5; } QHeaderView::section:horizontal:hover { background-color: #3265B2; } QHeaderView::section:horizontal:pressed { background-color: #3265B2; } QHeaderView::section:vertical { background-color: #737373; } QHeaderView::section:vertical:hover { background-color: #606060; } QHeaderView::section:vertical:pressed { background-color: #606060; } ''') else: self.setStyleSheet(''' QTableView { outline: none; color: #292929; } QTableView::item:hover { background-color: #EEE; } QTableView::item:selected { background-color: #EEE; color: #292929; } QHeaderView::section { color: #FFF; font-weight: bold; } QHeaderView::section:horizontal { background-color: #888; } QHeaderView::section:horizontal:hover { background-color: #777; } QHeaderView::section:horizontal:pressed { background-color: #666; } QHeaderView::section:vertical { background-color: #5C88C5; } QHeaderView::section:vertical:hover { background-color: #3265B2; } QHeaderView::section:vertical:pressed { background-color: #264E8C; } ''') self.itemChanged.connect(self.item_changed)
def wordless_widgets_search_settings(parent, tab): def multi_search_mode_changed(): if checkbox_multi_search_mode.isChecked(): label_search_term.setText(parent.tr('Search Terms:')) if line_edit_search_term.text() and list_search_terms.count() == 0: list_search_terms.load_items([line_edit_search_term.text()]) stacked_widget_search_term.setCurrentIndex(1) else: label_search_term.setText(parent.tr('Search Term:')) stacked_widget_search_term.setCurrentIndex(0) def match_tags_changed(): if checkbox_match_tags.isChecked(): checkbox_match_inflected_forms.setEnabled(False) stacked_widget_ignore_tags.setCurrentIndex(1) stacked_widget_ignore_tags_type.setCurrentIndex(1) else: checkbox_match_inflected_forms.setEnabled(True) stacked_widget_ignore_tags.setCurrentIndex(0) stacked_widget_ignore_tags_type.setCurrentIndex(0) def token_settings_changed(): token_settings = main.settings_custom[tab]['token_settings'] if line_edit_search_term.isEnabled() == True: if token_settings['use_tags']: checkbox_match_tags.setEnabled(False) checkbox_match_tags.setChecked(True) if token_settings['ignore_tags_tags']: stacked_widget_ignore_tags.setEnabled(False) stacked_widget_ignore_tags_type.setEnabled(False) else: stacked_widget_ignore_tags.setEnabled(True) stacked_widget_ignore_tags_type.setEnabled(True) else: checkbox_match_tags.setChecked(False) if token_settings['ignore_tags']: if token_settings['ignore_tags_type'] == parent.tr('All'): stacked_widget_ignore_tags.setEnabled(False) stacked_widget_ignore_tags_type.setEnabled(False) checkbox_match_tags.setEnabled(False) else: if checkbox_match_tags.isChecked(): stacked_widget_ignore_tags.setEnabled(False) stacked_widget_ignore_tags_type.setEnabled(False) else: stacked_widget_ignore_tags.setEnabled(True) stacked_widget_ignore_tags_type.setEnabled(True) checkbox_match_tags.setEnabled(True) else: stacked_widget_ignore_tags.setEnabled(True) stacked_widget_ignore_tags_type.setEnabled(True) checkbox_match_tags.setEnabled(True) if checkbox_match_tags.isEnabled(): match_tags_changed() main = wordless_misc.find_wordless_main(parent) label_search_term = QLabel(parent.tr('Search Term:'), parent) checkbox_multi_search_mode = QCheckBox(parent.tr('Multi-search Mode'), parent) line_edit_search_term = QLineEdit(parent) list_search_terms = wordless_list.Wordless_List_Search_Terms(parent) label_separator = wordless_label.Wordless_Label_Hint(parent.tr('* Use space to separate multiple tokens'), parent) checkbox_ignore_case = QCheckBox(parent.tr('Ignore case'), parent) checkbox_match_inflected_forms = QCheckBox(parent.tr('Match all inflected forms'), parent) checkbox_match_whole_words = QCheckBox(parent.tr('Match whole words only'), parent) checkbox_use_regex = QCheckBox(parent.tr('Use regular expression'), parent) checkbox_ignore_tags = QCheckBox(parent.tr('Ignore'), parent) checkbox_ignore_tags_tags = QCheckBox(parent.tr('Ignore'), parent) combo_box_ignore_tags = wordless_box.Wordless_Combo_Box(parent) combo_box_ignore_tags_tags = wordless_box.Wordless_Combo_Box(parent) label_ignore_tags = QLabel(parent.tr('tags'), parent) checkbox_match_tags = QCheckBox(parent.tr('Match tags only'), parent) combo_box_ignore_tags.addItems([ parent.tr('all'), parent.tr('POS'), parent.tr('non-POS') ]) combo_box_ignore_tags_tags.addItems([ parent.tr('POS'), parent.tr('non-POS') ]) wrapper_search_terms = QWidget(parent) wrapper_search_terms.setLayout(wordless_layout.Wordless_Layout()) wrapper_search_terms.layout().addWidget(list_search_terms, 0, 0, 5, 1) wrapper_search_terms.layout().addWidget(list_search_terms.button_add, 0, 1) wrapper_search_terms.layout().addWidget(list_search_terms.button_remove, 1, 1) wrapper_search_terms.layout().addWidget(list_search_terms.button_clear, 2, 1) wrapper_search_terms.layout().addWidget(list_search_terms.button_import, 3, 1) wrapper_search_terms.layout().addWidget(list_search_terms.button_export, 4, 1) wrapper_search_terms.layout().setContentsMargins(0, 0, 0, 0) stacked_widget_search_term = wordless_layout.Wordless_Stacked_Widget(parent) stacked_widget_search_term.addWidget(line_edit_search_term) stacked_widget_search_term.addWidget(wrapper_search_terms) stacked_widget_ignore_tags = wordless_layout.Wordless_Stacked_Widget(parent) stacked_widget_ignore_tags.addWidget(checkbox_ignore_tags) stacked_widget_ignore_tags.addWidget(checkbox_ignore_tags_tags) stacked_widget_ignore_tags_type = wordless_layout.Wordless_Stacked_Widget(parent) stacked_widget_ignore_tags_type.addWidget(combo_box_ignore_tags) stacked_widget_ignore_tags_type.addWidget(combo_box_ignore_tags_tags) checkbox_match_tags.token_settings_changed = token_settings_changed checkbox_multi_search_mode.stateChanged.connect(multi_search_mode_changed) checkbox_match_tags.stateChanged.connect(match_tags_changed) multi_search_mode_changed() match_tags_changed() return (label_search_term, checkbox_multi_search_mode, stacked_widget_search_term, line_edit_search_term, list_search_terms, label_separator, checkbox_ignore_case, checkbox_match_inflected_forms, checkbox_match_whole_words, checkbox_use_regex, stacked_widget_ignore_tags, checkbox_ignore_tags, checkbox_ignore_tags_tags, stacked_widget_ignore_tags_type, combo_box_ignore_tags, combo_box_ignore_tags_tags, label_ignore_tags, checkbox_match_tags)