def __init__(self, app, *args, **kwargs): super().__init__(app.mainwin, *args, **kwargs) # Set up the user interface from Designer. self.setupUi(self) self.created_dt.setCalendarPopup(True) # auto-completion set up self.name_completer = QCompleter(app.patches, self.name_entry) self.name_completer.setCompletionColumn(0) self.name_completer.setCaseSensitivity(Qt.CaseInsensitive) self.name_entry.setCompleter(self.name_completer) self.shortname_completer = QCompleter(app.patches, self.shortname_entry) self.shortname_completer.setCompletionColumn(1) self.shortname_completer.setCaseSensitivity(Qt.CaseInsensitive) self.shortname_entry.setCompleter(self.shortname_completer) self.author_model = AuthorListModel(app.session) self.author_cb.setModel(self.author_model) self.author_cb.setModelColumn(2) self.manufacturer_model = ManufacturerListModel(app.session) self.manufacturer_cb.setModel(self.manufacturer_model) self.manufacturer_cb.setModelColumn(3) self.device_model = DeviceListModel(app.session) self.device_cb.setModel(self.device_model) self.device_cb.setModelColumn(3) self._last_author = None
def __init__(self, text="Enter object label", parent=None, listItem=None): super(LabelDialog, self).__init__(parent) self.edit = QLineEdit() self.edit.setText(text) self.edit.setValidator(self.label_validator()) self.edit.editingFinished.connect(self.post_process) model = QStringListModel() model.setStringList(listItem) completer = QCompleter() completer.setModel(model) self.edit.setCompleter(completer) layout = QVBoxLayout() layout.addWidget(self.edit) self.buttonBox = bb = BB(BB.Ok | BB.Cancel, Qt.Horizontal, self) bb.button(BB.Ok).setIcon(QIcon('icons/done.png')) bb.button(BB.Cancel).setIcon(QIcon('icons/undo.png')) bb.accepted.connect(self.validate) bb.rejected.connect(self.reject) layout.addWidget(bb) if listItem is not None and len(listItem) > 0: self.listWidget = QListWidget(self) for item in listItem: self.listWidget.addItem(item) self.listWidget.itemClicked.connect(self.listItemClick) self.listWidget.itemDoubleClicked.connect(self.listItemDoubleClick) layout.addWidget(self.listWidget) self.setLayout(layout)
def __init__(self, parent=None): super(AbstractComboListInputWidget, self).__init__(parent) self.main_widget = self.parent() self.previous_text = '' self.setExistsFlag(True) # setup line edit #self.line_edit = QLineEdit("Select & Focus", self) self.line_edit = QLineEdit(self) self.line_edit.editingFinished.connect(self.userFinishedEditing) self.setLineEdit(self.line_edit) self.setEditable(True) # setup completer self.completer = QCompleter(self) self.completer.setCompletionMode(QCompleter.PopupCompletion) self.completer.setCaseSensitivity(Qt.CaseInsensitive) self.completer.setPopup(self.view()) self.setCompleter(self.completer) self.pFilterModel = QSortFilterProxyModel(self) # set size policy ( this will ignore the weird resizing effects) size_policy = QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Preferred) self.setSizePolicy(size_policy) # initialize model... model = QStandardItemModel() self.setModel(model) self.setModelColumn(0)
def __init__(self, wordlist, *args): QLineEdit.__init__(self, *args) self.mycompleter = QCompleter(wordlist) self.mycompleter.setCaseSensitivity(Qt.CaseInsensitive) self.mycompleter.setWidget(self) self.textChanged.connect(self.text_changed) self.mycompleter.activated.connect(self.complete_text)
def _complete_options(self): """Find available completion options.""" text = to_text_string(self.currentText()) opts = glob.glob(text + "*") opts = sorted([opt for opt in opts if osp.isdir(opt)]) self.setCompleter(QCompleter(opts, self)) return opts
def __init__(self, mask_names): """ :type mask_names: set :param mask_names: iterable collection of all available mask names """ super().__init__() self.mask_names = mask_names completer = QCompleter(list(mask_names)) completer.setCaseSensitivity(Qt.CaseInsensitive) self.setWindowTitle("Masks name choose") self.mask1_name = QLineEdit() self.mask2_name = QLineEdit() self.cancel_btn = QPushButton("Cancel") self.ok_btn = QPushButton("Ok") self.mask1_name.setCompleter(completer) self.mask1_name.textChanged.connect(self.text_changed) self.mask2_name.setCompleter(completer) self.mask2_name.textChanged.connect(self.text_changed) self.cancel_btn.clicked.connect(self.close) self.ok_btn.clicked.connect(self.accept) self.ok_btn.setDisabled(True) layout = QGridLayout() layout.addWidget(right_label("Mask 1 name:"), 0, 0) layout.addWidget(self.mask1_name, 0, 1) layout.addWidget(right_label("Mask 2 name:"), 1, 0) layout.addWidget(self.mask2_name, 1, 1) layout.addWidget(self.cancel_btn, 2, 0) layout.addWidget(self.ok_btn, 2, 1) self.setLayout(layout)
def __init__(self, parent=None): super().__init__(parent) self.setEditable(True) self.completer_object = QCompleter() self.completer_object.setCaseSensitivity(Qt.CaseInsensitive) self.setCompleter(self.completer_object) # FIXME if parse(QT_VERSION) < parse("5.14.0"): # pragma: no cover self.currentIndexChanged.connect(self._text_activated)
def __init__(self, parent=None): super().__init__(parent) self.setEditable(True) self.completer_object = QCompleter() self.completer_object.setCaseSensitivity(Qt.CaseInsensitive) self.completer_object.setCompletionMode(QCompleter.PopupCompletion) self.completer_object.setFilterMode(Qt.MatchContains) self.setCompleter(self.completer_object) self.setInsertPolicy(QComboBox.NoInsert) if parse(QT_VERSION) < parse("5.14.0"): # pragma: no cover self.currentIndexChanged.connect(self._text_activated)
def __init__(self, items, parent=None): super(AutoCompleteLineEdit, self).__init__(parent) self._separators = [",", " "] self._completer = QCompleter(items, self) self._completer.setWidget(self) self._completer.activated[str].connect(self.__insertCompletion) self._completer.setCaseSensitivity(Qt.CaseInsensitive) self.__keysToIgnore = [Qt.Key_Enter, Qt.Key_Return, Qt.Key_Escape, Qt.Key_Tab]
def _complete_options(self): """Find available completion options.""" text = to_text_string(self.currentText()) opts = glob.glob(text + "*") opts = sorted([opt for opt in opts if osp.isdir(opt)]) completer = QCompleter(opts, self) qss = str(APP_STYLESHEET) completer.popup().setStyleSheet(qss) self.setCompleter(completer) return opts
def __init__(self, appdata: CnaData, centralwidget: CentralWidget): QDialog.__init__(self) self.setWindowTitle("Yield optimization") self.appdata = appdata self.centralwidget = centralwidget self.eng = appdata.engine self.linear_re = re.compile( r'([ ]*(?P<factor1>[-]?\d*)[ ]*[*]?[ ]*(?P<reac_id>[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW]+\w*)[ ]*[*]?[ ]*(?P<factor2>[-]?\d*)[ ]*)' ) completer = QCompleter( self.appdata.project.cobra_py_model.reactions.list_attr("id"), self) completer.setCaseSensitivity(Qt.CaseInsensitive) self.layout = QVBoxLayout() l = QLabel( "Define the yield function Y=c*r/d*r by providing c and d as linear expression of form: \n \ id_1 * w_1 + ... id_n * w_n\n \ Where id_x are reaction ids and w_x optional weighting factor\n" ) self.layout.addWidget(l) t1 = QLabel("Define c") self.layout.addWidget(t1) self.c = CompleterLineEdit( self.appdata.project.cobra_py_model.reactions.list_attr("id"), "") self.c.setCompleter(completer) self.c.setPlaceholderText("") self.layout.addWidget(self.c) t2 = QLabel("Define d") self.layout.addWidget(t2) self.d = CompleterLineEdit( self.appdata.project.cobra_py_model.reactions.list_attr("id"), "") self.d.setPlaceholderText("") self.d.setCompleter(completer) self.layout.addWidget(self.d) l3 = QHBoxLayout() self.button = QPushButton("Compute") self.cancel = QPushButton("Close") l3.addWidget(self.button) l3.addWidget(self.cancel) self.layout.addItem(l3) self.setLayout(self.layout) # Connecting the signal self.c.textChangedX.connect(self.validate_dialog) self.d.textChangedX.connect(self.validate_dialog) self.cancel.clicked.connect(self.reject) self.button.clicked.connect(self.compute) self.validate_dialog()
def init_completion_list(self, words): self.completer = QCompleter(words, self) self.completer.setCompletionPrefix(self.parent().input_buffer()) self.completer.setWidget(self.parent().edit) self.completer.setCaseSensitivity(Qt.CaseSensitive) self.completer.setModelSorting(QCompleter.CaseSensitivelySortedModel) if self.mode == COMPLETE_MODE.DROPDOWN: self.completer.setCompletionMode(QCompleter.PopupCompletion) self.completer.activated.connect(self.insert_completion) else: self.completer.setCompletionMode(QCompleter.InlineCompletion)
def initialize(self): history = STATUS.mdi_history.value if self._completer_enabled: completer = QCompleter() completer.setCaseSensitivity(Qt.CaseInsensitive) self.model = QStringListModel() completer.setModel(self.model) self.setCompleter(completer) self.model.setStringList(history) STATUS.mdi_history.notify(self.model.setStringList) STATUS.max_mdi_history_length = self.mdi_history_size
def _complete_options(self): """Find available completion options.""" text = to_text_string(self.currentText()) opts = glob.glob(text + "*") opts = sorted([opt for opt in opts if osp.isdir(opt)]) completer = QCompleter(opts, self) if is_dark_interface(): dark_qss = qdarkstyle.load_stylesheet_from_environment() completer.popup().setStyleSheet(dark_qss) self.setCompleter(completer) return opts
def __init__(self, parent=None): super(MDIEntry, self).__init__(parent) self.model = QStringListModel() completer = QCompleter() completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setModel(self.model) self.setCompleter(completer) self.validator = Validator(self) self.setValidator(self.validator) self.returnPressed.connect(self.submit)
def __init__(self, parent=None): super(MDIEntry, self).__init__(parent) self.mdi_rtnkey_behaviour_supressed = False self.mdi_history_size = 100 completer = QCompleter() completer.setCaseSensitivity(Qt.CaseInsensitive) self.model = QStringListModel() completer.setModel(self.model) self.setCompleter(completer) self.validator = Validator(self) self.setValidator(self.validator) self.returnPressed.connect(self.submit)
def __init__(self, parent=None): super(FileBrowserInputWidget, self).__init__(parent=parent) # setup model self.model = QFileSystemModel() self.model.setRootPath('/home/') filters = self.model.filter() self.model.setFilter(filters | QDir.Hidden) # setup completer completer = QCompleter(self.model, self) self.setCompleter(completer) installCompleterPopup(completer) self.setCompleter(completer) completer.setCaseSensitivity(Qt.CaseInsensitive) self.autoCompleteList = []
def __init__(self, parent=None): super(MDIEntry, self).__init__(parent) self.model = QStringListModel() completer = QCompleter() completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setModel(self.model) self.setCompleter(completer) self.validator = Validator(self) self.setValidator(self.validator) self.loadMDIHystory() self.returnPressed.connect(self.submit) QApplication.instance().aboutToQuit.connect(self.saveMDIHistory)
def add_desired_region(self): i = self.desired_list.rowCount() self.desired_list.insertRow(i) completer = QCompleter( self.appdata.project.cobra_py_model.reactions.list_attr("id"), self) completer.setCaseSensitivity(Qt.CaseInsensitive) item = QLineEdit("1") self.desired_list.setCellWidget(i, 0, item) item2 = QLineEdit("") item2.setCompleter(completer) self.desired_list.setCellWidget(i, 1, item2) combo = QComboBox(self.desired_list) combo.insertItem(1, "≤") combo.insertItem(2, "≥") self.desired_list.setCellWidget(i, 2, combo) item = QLineEdit("0") self.desired_list.setCellWidget(i, 3, item)
def __init__(self): QPlainTextEdit.__init__(self) self.setWordWrapMode(QTextOption.NoWrap) self.setFont(QFont("monospace", 10)) self.setCursorWidth(2) self.installEventFilter(self) self.completer = QCompleter(self) self.completer.setWidget(self) self.completer.setCaseSensitivity(Qt.CaseInsensitive) self.completer.activated.connect(self.insertCompletion) auto_complete = QShortcut(QKeySequence("Ctrl+Space"), self) auto_complete.activated.connect(self.activateCompleter) copy_line = QShortcut(QKeySequence("Ctrl+D"), self) copy_line.activated.connect(self.duplicateLine) select_fragment = QShortcut(QKeySequence("Ctrl+J"), self) select_fragment.activated.connect(self.selectFragment)
def __init__(self, appdata): QDialog.__init__(self) self.setWindowTitle("Phase plane plotting") self.appdata = appdata completer = QCompleter( self.appdata.project.cobra_py_model.reactions.list_attr("id"), self) completer.setCaseSensitivity(Qt.CaseInsensitive) self.layout = QVBoxLayout() l1 = QHBoxLayout() t1 = QLabel("Reaction (x-axis):") l1.addWidget(t1) self.x_axis = CompleterLineEdit( self.appdata.project.cobra_py_model.reactions.list_attr("id"), "") self.x_axis.setPlaceholderText("Enter reaction Id") l1.addWidget(self.x_axis) l2 = QHBoxLayout() t2 = QLabel("Reaction (y-axis):") l2.addWidget(t2) self.y_axis = QLineEdit("") self.y_axis.setPlaceholderText("Enter reaction Id") self.y_axis.setCompleter(completer) l2.addWidget(self.y_axis) self.layout.addItem(l1) self.layout.addItem(l2) l3 = QHBoxLayout() self.button = QPushButton("Plot") self.cancel = QPushButton("Close") l3.addWidget(self.button) l3.addWidget(self.cancel) self.layout.addItem(l3) self.setLayout(self.layout) # Connecting the signal self.cancel.clicked.connect(self.reject) self.button.clicked.connect(self.compute)
def __init__(self, parent=None): super().__init__(parent) self._compl = QCompleter(list(get_color_dict()) + ['transparent']) self._compl.setCompletionMode(QCompleter.InlineCompletion) self.setCompleter(self._compl) self.setTextMargins(2, 2, 2, 2)
import sys from qtpy.QtCore import Qt from qtpy.QtWidgets import QApplication, QCompleter, QLineEdit, QStringListModel def get_data(model): model.setStringList(["completion", "data", "goes", "here"]) if __name__ == "__main__": app = QApplication(sys.argv) edit = QLineEdit() completer = QCompleter() edit.setCompleter(completer) model = QStringListModel() completer.setModel(model) get_data(model) edit.show() sys.exit(app.exec_())
def __init__(self, parent): QComboBox.__init__(self, parent) self.setEditable(True) self.setCompleter(QCompleter(self)) self.numpress = 0 self.selected_text = self.currentText()
def __init__(self, appdata: CnaData, centralwidget): QDialog.__init__(self) self.setWindowTitle("Minimal Cut Sets Computation") self.appdata = appdata self.centralwidget = centralwidget self.eng = appdata.engine self.out = io.StringIO() self.err = io.StringIO() self.layout = QVBoxLayout() l1 = QLabel("Target Region(s)") self.layout.addWidget(l1) s1 = QHBoxLayout() completer = QCompleter( self.appdata.project.cobra_py_model.reactions.list_attr("id"), self) completer.setCaseSensitivity(Qt.CaseInsensitive) self.target_list = QTableWidget(1, 4) self.target_list.setHorizontalHeaderLabels( ["region no", "T", "≥/≤", "t"]) self.target_list.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.target_list.horizontalHeader().setSectionResizeMode(0, QHeaderView.Fixed) self.target_list.horizontalHeader().resizeSection(0, 100) self.target_list.horizontalHeader().setSectionResizeMode(2, QHeaderView.Fixed) self.target_list.horizontalHeader().resizeSection(2, 50) item = QLineEdit("1") self.target_list.setCellWidget(0, 0, item) item2 = QLineEdit("") item2.setCompleter(completer) self.target_list.setCellWidget(0, 1, item2) combo = QComboBox(self.target_list) combo.insertItem(1, "≤") combo.insertItem(2, "≥") self.target_list.setCellWidget(0, 2, combo) item = QLineEdit("0") self.target_list.setCellWidget(0, 3, item) s1.addWidget(self.target_list) s11 = QVBoxLayout() self.add_target = QPushButton("+") self.add_target.clicked.connect(self.add_target_region) self.rem_target = QPushButton("-") self.rem_target.clicked.connect(self.rem_target_region) s11.addWidget(self.add_target) s11.addWidget(self.rem_target) s1.addItem(s11) self.layout.addItem(s1) l2 = QLabel("Desired Region(s)") self.layout.addWidget(l2) s2 = QHBoxLayout() self.desired_list = QTableWidget(1, 4) self.desired_list.setHorizontalHeaderLabels( ["region no", "D", "≥/≤", "d"]) self.desired_list.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.desired_list.horizontalHeader().setSectionResizeMode(0, QHeaderView.Fixed) self.desired_list.horizontalHeader().resizeSection(0, 100) self.desired_list.horizontalHeader().setSectionResizeMode(2, QHeaderView.Fixed) self.desired_list.horizontalHeader().resizeSection(2, 50) item = QLineEdit("1") self.desired_list.setCellWidget(0, 0, item) item2 = QLineEdit("") item2.setCompleter(completer) self.desired_list.setCellWidget(0, 1, item2) combo = QComboBox(self.desired_list) combo.insertItem(1, "≤") combo.insertItem(2, "≥") self.desired_list.setCellWidget(0, 2, combo) item = QLineEdit("0") self.desired_list.setCellWidget(0, 3, item) s2.addWidget(self.desired_list) s21 = QVBoxLayout() self.add_desire = QPushButton("+") self.add_desire.clicked.connect(self.add_desired_region) self.rem_desire = QPushButton("-") self.rem_desire.clicked.connect(self.rem_desired_region) s21.addWidget(self.add_desire) s21.addWidget(self.rem_desire) s2.addItem(s21) self.layout.addItem(s2) s3 = QHBoxLayout() sgx = QVBoxLayout() self.gen_kos = QCheckBox("Gene KOs") self.exclude_boundary = QCheckBox( "Exclude boundary\nreactions as cuts") sg1 = QHBoxLayout() s31 = QVBoxLayout() l = QLabel("Max. Solutions") s31.addWidget(l) l = QLabel("Max. Size") s31.addWidget(l) l = QLabel("Time Limit [sec]") s31.addWidget(l) sg1.addItem(s31) s32 = QVBoxLayout() self.max_solu = QLineEdit("inf") self.max_solu.setMaximumWidth(50) s32.addWidget(self.max_solu) self.max_size = QLineEdit("7") self.max_size.setMaximumWidth(50) s32.addWidget(self.max_size) self.time_limit = QLineEdit("inf") self.time_limit.setMaximumWidth(50) s32.addWidget(self.time_limit) sg1.addItem(s32) sgx.addWidget(self.gen_kos) sgx.addWidget(self.exclude_boundary) sgx.addItem(sg1) s3.addItem(sgx) g3 = QGroupBox("Solver") s33 = QVBoxLayout() self.bg1 = QButtonGroup() optlang_solver_name = interface_to_str( appdata.project.cobra_py_model.problem) self.solver_optlang = QRadioButton(f"{optlang_solver_name} (optlang)") self.solver_optlang.setToolTip( "Uses the solver specified by the current model.") s33.addWidget(self.solver_optlang) self.bg1.addButton(self.solver_optlang) self.solver_cplex_matlab = QRadioButton("CPLEX (MATLAB)") self.solver_cplex_matlab.setToolTip( "Only enabled with MATLAB and CPLEX") s33.addWidget(self.solver_cplex_matlab) self.bg1.addButton(self.solver_cplex_matlab) self.solver_cplex_java = QRadioButton("CPLEX (Octave)") self.solver_cplex_java.setToolTip("Only enabled with Octave and CPLEX") s33.addWidget(self.solver_cplex_java) self.bg1.addButton(self.solver_cplex_java) self.solver_intlinprog = QRadioButton("intlinprog (MATLAB)") self.solver_intlinprog.setToolTip("Only enabled with MATLAB") s33.addWidget(self.solver_intlinprog) self.bg1.addButton(self.solver_intlinprog) self.solver_glpk = QRadioButton("GLPK (Octave/MATLAB)") s33.addWidget(self.solver_glpk) self.bg1.addButton(self.solver_glpk) self.bg1.buttonClicked.connect(self.configure_solver_options) g3.setLayout(s33) s3.addWidget(g3) g4 = QGroupBox("MCS search") s34 = QVBoxLayout() self.bg2 = QButtonGroup() self.any_mcs = QRadioButton("any MCS (fast)") self.any_mcs.setChecked(True) s34.addWidget(self.any_mcs) self.bg2.addButton(self.any_mcs) # Search type: by cardinality only with CPLEX possible self.mcs_by_cardinality = QRadioButton("by cardinality") s34.addWidget(self.mcs_by_cardinality) self.bg2.addButton(self.mcs_by_cardinality) self.smalles_mcs_first = QRadioButton("smallest MCS first") s34.addWidget(self.smalles_mcs_first) self.bg2.addButton(self.smalles_mcs_first) g4.setLayout(s34) s3.addWidget(g4) self.layout.addItem(s3) # Disable incompatible combinations if appdata.selected_engine == 'None': self.solver_optlang.setChecked(True) self.solver_cplex_matlab.setEnabled(False) self.solver_cplex_java.setEnabled(False) self.solver_glpk.setEnabled(False) self.solver_intlinprog.setEnabled(False) if optlang_solver_name != 'cplex': self.mcs_by_cardinality.setEnabled(False) else: self.solver_glpk.setChecked(True) if not self.eng.is_cplex_matlab_ready(): self.solver_cplex_matlab.setEnabled(False) if not self.eng.is_cplex_java_ready(): self.solver_cplex_java.setEnabled(False) if self.appdata.is_matlab_set(): self.solver_cplex_java.setEnabled(False) if not self.appdata.is_matlab_set(): self.solver_cplex_matlab.setEnabled(False) self.solver_intlinprog.setEnabled(False) self.configure_solver_options() s4 = QVBoxLayout() self.consider_scenario = QCheckBox( "Consider constraint given by scenario") s4.addWidget(self.consider_scenario) self.advanced = QCheckBox( "Advanced: Define knockout/addition costs for genes/reactions") self.advanced.setEnabled(False) s4.addWidget(self.advanced) self.layout.addItem(s4) buttons = QHBoxLayout() # self.save = QPushButton("save") # buttons.addWidget(self.save) # self.load = QPushButton("load") # buttons.addWidget(self.load) self.compute_mcs = QPushButton("Compute MCS") buttons.addWidget(self.compute_mcs) # self.compute_mcs2 = QPushButton("Compute MCS2") # buttons.addWidget(self.compute_mcs2) self.cancel = QPushButton("Close") buttons.addWidget(self.cancel) self.layout.addItem(buttons) # max width for buttons self.add_target.setMaximumWidth(20) self.rem_target.setMaximumWidth(20) self.add_desire.setMaximumWidth(20) self.rem_desire.setMaximumWidth(20) self.setLayout(self.layout) # Connecting the signal self.cancel.clicked.connect(self.reject) self.compute_mcs.clicked.connect(self.compute)
def hide_completer(self): """Hides the completion widget.""" self.setCompleter(QCompleter([], self))