class LoadZeroPointView(QDialog): def __init__(self, zeroPointManager: ZeroPointManager): super().__init__() self.setWindowTitle("Load Zero Point") self._zeroPointManager = zeroPointManager self._listWidget = QListWidget() for zeroPoint in self._zeroPointManager.getZeroPoints(): listItem = QListWidgetItem( f"{zeroPoint.name} : {zeroPoint.offset}") self._listWidget.addItem(listItem) buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.setZeroPoint) buttonBox.rejected.connect(self.reject) layout = QFormLayout() layout.addRow(self._listWidget) layout.addRow(buttonBox) self.setLayout(layout) def setZeroPoint(self): index = self._listWidget.indexFromItem( self._listWidget.selectedItems()[0]).row() self._zeroPointManager.setNewActiveZeroPoint(index) self.close()
def __init__(self, parent=None): super(MyWidget, self).__init__(parent) ## 左 menu_widget = QListWidget() for i in range(10): item = QListWidgetItem("Item {}".format(i)) item.setTextAlignment(Qt.AlignCenter) menu_widget.addItem(item) ## 右 # 右上 _placeholder = "This is a placeholder text" text_widget = QLabel(_placeholder) text_widget.setObjectName("title") # 右下 button = QPushButton("Something") content_layout = QVBoxLayout() content_layout.addWidget(text_widget) content_layout.addWidget(button) main_widget = QWidget() main_widget.setLayout(content_layout) ## 全体を構成 layout = QHBoxLayout() layout.addWidget(menu_widget, 1) layout.addWidget(main_widget, 4) self.setLayout(layout)
class AreasBrowserDialog(BaseDialog): def __init__(self, parent, area_name, areas): super().__init__(parent, _("Select the area you mean"), _("&Select"), _("&Close")) self._areas = list(areas.items()) for id, (parent_name, data) in self._areas: self._areas_list.addItem( _("{area_name}, {parent_name}").format( area_name=area_name, parent_name=parent_name)) self._areas_list.setCurrentRow(0) def create_ui(self): areas_label = QLabel(_("Areas")) self.layout.addWidget(areas_label, 0, 0) self._areas_list = QListWidget(self) areas_label.setBuddy(self._areas_list) self._areas_list.currentRowChanged.connect(self.on_areas_list_listbox) self.layout.addWidget(self._areas_list, 1, 0) props_label = QLabel(_("Area properties")) self.layout.addWidget(props_label, 0, 1) self._area_props = QListWidget() props_label.setBuddy(self._area_props) self.layout.addWidget(self._area_props, 1, 1) def on_areas_list_listbox(self, index): self._area_props.clear() for key, value in self._areas[index][1][1].items(): self._area_props.addItem(f"{underscored_to_words(key)}: {value}") self._area_props.addItem( _("Area id: {}").format(self._areas[index][0])) @property def selected_area_id(self): return self._areas[self._areas_list.currentRow()][0]
class WetSand(QWidget): def _connect_signals_slots(self): # Freeze interface for btn in self.btns: self.freeze_btn.clicked.connect(btn.set_clickable) # Unfreeze interface for btn in self.btns: self.unfreeze_btn.clicked.connect(btn.set_unclickable) def __init__(self): super().__init__() # Init list self.list = QListWidget() self.list.addItem(WetListItem("You don't form in the wet sand")) self.list.addItem(WetListItem("You don't form at all")) # Init buttons self.btns = [ WetButton('johs'), WetButton('jon'), WetButton('feel'), WetButton('chat'), WetButton('tony') ] # Freeze and unfreeze buttons self.freeze_btn = QPushButton('Freeze me') self.unfreeze_btn = QPushButton('Unfreeze me') # Layout stuff self.btn_lyt = QVBoxLayout() for btn in self.btns: self.btn_lyt.addWidget(btn) self.top_lyt = QHBoxLayout() self.top_lyt.addWidget(self.list) self.top_lyt.addLayout(self.btn_lyt) self.bottom_lyt = QHBoxLayout() self.bottom_lyt.addWidget(self.freeze_btn) self.bottom_lyt.addWidget(self.unfreeze_btn) self.main_lyt = QVBoxLayout() self.main_lyt.addLayout(self.top_lyt) self.main_lyt.addLayout(self.bottom_lyt) # Signals and slots self._connect_signals_slots() # Don't forget me self.setLayout(self.main_lyt) self.show()
def __init__(self): super().__init__() self.setWindowTitle("muSync - Accounts") self.setModal(True) dialogLayout = QVBoxLayout(self) accountsList = QListWidget() accountsList.setObjectName("accountsList") dialogLayout.addWidget(accountsList) buttonsLayout = QHBoxLayout() addButton = QPushButton(QIcon.fromTheme("list-resource-add"), "&Add account") addButton.clicked.connect(lambda: self.__show_modules()) buttonsLayout.addWidget(addButton) delButton = QPushButton(QIcon.fromTheme("edit-delete"), "&Remove account") delButton.clicked.connect(lambda: self.__del_account(accountsList)) delButton.setDisabled(True) buttonsLayout.addWidget(delButton) okButton = QPushButton(QIcon.fromTheme("dialog-ok"), "&Select account") okButton.clicked.connect(lambda: self.__select_account(accountsList)) okButton.setDisabled(True) buttonsLayout.addWidget(okButton) cancelButton = QPushButton(QIcon.fromTheme("dialog-cancel"), "&Cancel") cancelButton.clicked.connect(self.close) buttonsLayout.addWidget(cancelButton) dialogLayout.addLayout(buttonsLayout) accountsList.itemSelectionChanged.connect(lambda: okButton.setDisabled( True if accountsList.selectedIndexes() == [] else False)) accountsList.itemSelectionChanged.connect( lambda: delButton.setDisabled(True if accountsList.selectedIndexes( ) == [] else False)) accounts = QSettings() accounts.beginGroup("accounts") for account_id in accounts.childKeys(): module_name = accounts.value(account_id) if module_name not in modules.modules: pass # TODO account = modules.create_object(module_name) account.setId(account_id) account.initialize() accountListItem = QListWidgetItem(account.getName()) accountListItem.account = account accountsList.addItem(accountListItem) accountsList.itemDoubleClicked.connect( lambda: self.__select_account(accountsList))
def __init__(self, parent, packages): super(SelectPackages_Dialog, self).__init__(parent) self.file_paths = [] self.required_packages = packages self.setLayout(QVBoxLayout()) self.layout().addWidget( QLabel( 'You need to select the locations of the following required node packages' )) # package lists required_packages_list_widget = QListWidget() for p in packages: package_item = QListWidgetItem() package_item.setText(p) required_packages_list_widget.addItem(package_item) selected_items_widget = QWidget() selected_items_widget.setLayout(QVBoxLayout()) self.selected_packages_list_widget = QListWidget() selected_items_widget.layout().addWidget( self.selected_packages_list_widget) auto_import_button = QPushButton('auto import') auto_import_button.setFocus() auto_import_button.clicked.connect(self.auto_import_button_clicked) selected_items_widget.layout().addWidget(auto_import_button) add_package_button = QPushButton('add') add_package_button.clicked.connect(self.add_package_button_clicked) selected_items_widget.layout().addWidget(add_package_button) clear_package_list_button = QPushButton('clear') clear_package_list_button.clicked.connect( self.clear_selected_packages_list) selected_items_widget.layout().addWidget(clear_package_list_button) finished_button = QPushButton('OK') finished_button.clicked.connect(self.finished_button_clicked) selected_items_widget.layout().addWidget(finished_button) packages_lists_widget = QWidget() packages_lists_widget.setLayout(QHBoxLayout()) packages_lists_widget.layout().addWidget(required_packages_list_widget) packages_lists_widget.layout().addWidget(selected_items_widget) self.layout().addWidget(packages_lists_widget) self.setWindowTitle('select required packages')
class Widget(QWidget): def __init__(self, parent=None): super(Widget, self).__init__(parent) self.list1_widget = QListWidget() self.list1_items = [] self.list2_widget = QListWidget() self.list2_items = [] for i in range(10): item1 = QListWidgetItem() item1.setTextAlignment(Qt.AlignCenter) self.list1_items.append(item1) self.list1_widget.addItem(item1) item2 = QListWidgetItem() item2.setTextAlignment(Qt.AlignCenter) self.list2_items.append(item2) self.list2_widget.addItem(item2) self.edit = QLineEdit("Write the path here..") button = QPushButton("Enter") button.clicked.connect(self.accept_input) lists_layout = QHBoxLayout() lists_layout.addWidget(self.list1_widget, 1) lists_layout.addWidget(self.list2_widget, 1) lists_widget_wrapper = QWidget() lists_widget_wrapper.setLayout(lists_layout) content_layout = QVBoxLayout() content_layout.addWidget(self.edit) content_layout.addWidget(lists_widget_wrapper) content_layout.addWidget(button) self.setLayout(content_layout) def accept_input(self): self.set_list(count_from_path(self.edit.text())) def set_list(self, items): items1 = items[0] items2 = items[1] if len(items1) != 10 or len(items1) != 10: return for i in range(10): self.list1_items[i].setText(items1[i]) self.list2_items[i].setText(items2[i])
class FieldAttrsDialog(QDialog): def __init__(self, parent=None): super().__init__(parent) self.setLayout(QGridLayout()) self.setWindowTitle("Edit Attributes") self.list_widget = QListWidget() self.list_widget.setMinimumSize(800, 600) self.add_button = QPushButton("Add attr") self.add_button.clicked.connect(self.__add_attr) self.remove_button = QPushButton("Remove attr") self.remove_button.clicked.connect(self._remove_attrs) self.layout().addWidget(self.list_widget, 0, 0, 2, 1) self.layout().addWidget(self.add_button, 0, 1) self.layout().addWidget(self.remove_button, 1, 1) def fill_existing_attrs(self, existing_dataset: h5py.Dataset): for name, value in existing_dataset.attrs.items(): if name not in ATTRS_BLACKLIST: frame = FieldAttrFrame(name, value) self._add_attr(existing_frame=frame) def __add_attr(self): """ Only used for button presses. Any additional arguments from the signal are ignored. """ self._add_attr() def _add_attr(self, existing_frame=None): item = QListWidgetItem() self.list_widget.addItem(item) frame = existing_frame if existing_frame is not None else FieldAttrFrame( ) item.setSizeHint(frame.sizeHint()) self.list_widget.setItemWidget(item, frame) def _remove_attrs(self): for index in self.list_widget.selectedIndexes(): self.list_widget.takeItem(index.row()) def get_attrs(self): attrs_dict = {} for index in range(self.list_widget.count()): item = self.list_widget.item(index) widget = self.list_widget.itemWidget(item) attrs_dict[widget.value[0]] = widget.value[1] return attrs_dict
class ppDiscoverWidget(QWidget, Discovery): DeviceChanged = Signal(ppDevice) def __init__(self): QWidget.__init__(self) Discovery.__init__(self, DeviceID.BEBOP_FAMILY) self.button = QPushButton("Refresh Devices") self.lst = QListWidget(self) self.layout = QVBoxLayout() self.layout.addWidget(self.lst) self.layout.addWidget(self.button) self.setLayout(self.layout) self.button.clicked.connect(self.discover) self.lst.currentItemChanged.connect(self.on_item_changed) self.setFixedWidth(140) def add_service(self, zeroconf, type, name): """ Internal function for zeroconf.ServiceBrowser. """ info = super().add_service(zeroconf, type, name) # self.devices.append(info) item = ppDevice(info) self.lst.addItem(item) # item2=ppDevice(info) # self.lst.addItem(item2) print('[' + item.name + '-' + item.ip + ']') item.connect() item.start_stream() def discover(self, wd=2): print("searching devices...") self.lst.clear() #self.devices = [] super().start() super().wait_for_change(2) super().stop() print("OK") def on_item_changed(self, curr, prev): print("switch on " + curr.name) self.DeviceChanged.emit(curr) @property def curentDevice(self): return self.lst.currentItem()
class AutocompleteWidget(QDialog): WIDTH = 300 HEIGHT = 120 def __init__(self, suggestions: list): super(AutocompleteWidget, self).__init__() self.widget = QListWidget() self.widget.setStyleSheet("background-color: #232323;") self.setWindowFlags(Qt.FramelessWindowHint | Qt.Window) self.vbox = QVBoxLayout() self.label = QLabel("") self.vbox.addWidget(self.widget, 10) self.vbox.addWidget(self.label, 1) self.setLayout(self.vbox) self.updateSuggestionList(suggestions) self.result = None def updateSuggestionList(self, suggestions): self.widget.clear() if suggestions: for keyword in suggestions: self.widget.addItem(AutoCompleteListWidgetItem(keyword)) self.label.setText("Number of suggestions: {}.".format( len(suggestions))) else: self.label.setText("No available suggestions.") self.setSize() def setSize(self): self.setFixedSize(self.minimumSizeHint()) self.setFixedHeight(AutocompleteWidget.HEIGHT) self.setFixedWidth(AutocompleteWidget.WIDTH) def keyPressEvent(self, e): if e.key() == Qt.Key_Escape: self.close() if e.key() == Qt.Key_Return: selectedItems = self.widget.selectedItems() if len(selectedItems) > 0: self.result = selectedItems[0] self.close() if e.key() == Qt.Key_Backspace: self.close() if e.key() == Qt.Key_Left: self.parent().setFocus()
class ServerGUI(QMainWindow): server = None def __init__(self): super().__init__() self.setWindowTitle("Stopped") self.start_button = QPushButton("Start") self.clients_list = QListWidget() self.start_button.clicked.connect(self.start_server) # Setting layout self.layout = QVBoxLayout() self.layout.addWidget(self.start_button) self.layout.addWidget(QLabel("Clients:")) self.layout.addWidget(self.clients_list) widget = QWidget() widget.setLayout(self.layout) self.setCentralWidget(widget) self.setIcon() def setIcon(self): appIcon = QIcon("icons/server.png") self.setWindowIcon(appIcon) def stop_server(self): self.server.stop_server() self.server = None self.start_button.clicked.connect(self.start_server) self.start_button.setText("Start") self.setWindowTitle("Stopped") def start_server(self): ip, port = "0.0.0.0", random.randint(8000, 8999) if self.server is None: self.server = Server(ip, port, server_gui=self) self.server.start_server() self.start_button.setText("Stop") self.start_button.clicked.connect(self.stop_server) self.setWindowTitle(f"{ip}:{port}") def update_client_list(self, clients): self.clients_list.clear() for client in clients: self.clients_list.addItem(f"{client.username}:{client.socket_id}")
class Order(QWidget): def __init__(self): super(Order, self).__init__() self.order_list = QListWidget() self.required_bosses = [ 'Asylum Demon', 'Bell Gargoyle', 'Quelaag', 'Iron Golem', 'Ornstein & Smough', 'Ceaseless Discharge', 'Sif', '4 Kings', 'Bed Of Chaos', 'Seath', 'Pinwheel', 'Nito', 'Gwyn' ] self.order_list.setDragDropMode(QAbstractItemView.InternalMove) for i in self.required_bosses: self.order_list.addItem(i) self.layout = QGridLayout() self.layout.addWidget(self.order_list, 0, 0) self.setLayout(self.layout)
class SimpleTodoPlus(QWidget): def __init__(self): QWidget.__init__(self) self.todo_list_widget = QListWidget(self) self.todo_list_widget.itemChanged.connect(self.onItemChanged) self.add_todo_btn = QPushButton("Add Todo", self) self.add_todo_btn.clicked.connect(self.add_todo_btn_clicked) self.remove_todo_btn = QPushButton("Remove Todo", self) self.remove_todo_btn.clicked.connect(self.remove_todo_btn_clicked) self.clear_todo_btn = QPushButton("Clear Todo", self) self.clear_todo_btn.clicked.connect(self.clear_todo_btn_clicked) vbox_layout = QVBoxLayout(self) vbox_layout.addWidget(self.todo_list_widget) hbox_layout = QHBoxLayout() hbox_layout.addWidget(self.add_todo_btn) hbox_layout.addWidget(self.remove_todo_btn) hbox_layout.addWidget(self.clear_todo_btn) vbox_layout.addLayout(hbox_layout) def add_todo_btn_clicked(self): item = QListWidgetItem(f"Todo {self.todo_list_widget.count() + 1}") item.setFlags(item.flags() | Qt.ItemIsUserCheckable | Qt.ItemIsEditable) item.setCheckState(Qt.Unchecked) self.todo_list_widget.addItem(item) self.todo_list_widget.edit(self.todo_list_widget.indexFromItem(item)) def remove_todo_btn_clicked(self): if self.todo_list_widget.count(): self.todo_list_widget.takeItem(self.todo_list_widget.currentRow()) def clear_todo_btn_clicked(self): self.todo_list_widget.clear() def onItemChanged(self, item): font = item.font() font.setStrikeOut(item.checkState() == Qt.Checked) item.setFont(font)
def _init_widgets(self): # contents contents = QListWidget() contents.setViewMode(QListView.IconMode) contents.setIconSize(QSize(96, 84)) contents.setMovement(QListView.Static) contents.setMaximumWidth(128) contents.setSpacing(12) def item_changed(item: QListWidgetItem): pageno = item.data(1) # type: Page pages.setCurrentIndex(pageno) contents.itemClicked.connect(item_changed) self._pages.append(Integration()) self._pages.append(ThemeAndColors()) pages = QStackedWidget() for idx, page in enumerate(self._pages): pages.addWidget(page) list_item = QListWidgetItem(page.NAME) list_item.setData(1, idx) contents.addItem(list_item) # buttons buttons = QDialogButtonBox(parent=self) buttons.setStandardButtons(QDialogButtonBox.StandardButton.Close | QDialogButtonBox.StandardButton.Ok) buttons.button(QDialogButtonBox.Ok).setText('Save') buttons.accepted.connect(self._on_ok_clicked) buttons.rejected.connect(self.close) # layout top_layout = QHBoxLayout() top_layout.addWidget(contents) top_layout.addWidget(pages) main_layout = QVBoxLayout() main_layout.addLayout(top_layout) main_layout.addWidget(buttons) self.setLayout(main_layout)
class SelectCoursePage(QWizardPage): def __init__(self, parent=None): super(SelectCoursePage, self).__init__(parent) self.setTitle("Courses") self.courseList = parent.getCourseList() self.courseListWidget = QListWidget() # self.courseListWidget.setDisabled(True) layout = QGridLayout() layout.addWidget(self.courseListWidget) self.setLayout(layout) def initializePage(self) -> None: for course in self.courseList: courseItem = QListWidgetItem() courseItem.setText(course['courseTitle']) courseItem.setData(-1, course) # courseItem.setFlags(courseItem.flags() | Qt.ItemIsUserCheckable) # courseItem.setCheckState(Qt.Checked) self.courseListWidget.addItem(courseItem)
class ElementPopup(QDialog): def __init__(self): super().__init__() self.setWindowFlags(Qt.CustomizeWindowHint) self.setLayout(QVBoxLayout()) self.resize(300, 300) layout = QHBoxLayout() button_add = QPushButton('Add') button_close = QPushButton('Close') self.list_widget = QListWidget() self.list_widget.addItem("Comment") self.list_widget.addItem("Channel Send") layout.addWidget(button_add) layout.addWidget(button_close) self.layout().addWidget(self.list_widget) self.layout().addLayout(layout) button_add.clicked.connect(lambda: self.addElement()) button_close.clicked.connect(self.close) self.exec_() qtRectangle = self.frameGeometry() centerPoint = QDesktopWidget().availableGeometry().center() qtRectangle.moveCenter(centerPoint) self.move(qtRectangle.center()) def addElement(self): selectedItem = self.list_widget.selectedItems() try: widget.add_element(selectedItem[0].text(), selectedItem[0].text()) except: pass self.close() def mousePressEvent(self, event): self.oldPos = event.globalPos() def mouseMoveEvent(self, event): delta = QPoint(event.globalPos() - self.oldPos) #print(delta) self.move(self.x() + delta.x(), self.y() + delta.y()) self.oldPos = event.globalPos()
class MyWidget(QWidget): def __init__(self): QWidget.__init__(self) self.search = QLineEdit() self.results = QListWidget() self.layout = QVBoxLayout() self.layout.addWidget(self.search) self.layout.addWidget(self.results) self.setLayout(self.layout) self.search.returnPressed.connect(self.search_word) @Slot() def search_word(self): self.results.clear() for word in find_similar_ending_words(self.search.text()): self.results.addItem(word)
def __init__(self, parent=None): super(Widget, self).__init__(parent) menu_widget = QListWidget() for i in range(10): item = QListWidgetItem("Item {}".format(i)) item.setTextAlignment(Qt.AlignCenter) menu_widget.addItem(item) text_widget = QLabel(_placeholder) button = QPushButton("Something") content_layout = QVBoxLayout() content_layout.addWidget(text_widget) content_layout.addWidget(button) main_widget = QWidget() main_widget.setLayout(content_layout) layout = QHBoxLayout() layout.addWidget(menu_widget, 1) layout.addWidget(main_widget, 4) self.setLayout(layout)
class HiddenDialog(QDialog): lifelines = None def __init__(self, hiddenLifeline, parent=None): super(HiddenDialog, self).__init__(parent) self.lifelines = hiddenLifeline layout = QVBoxLayout(self) listTitle = QLabel('Hidden Life-lines') layout.addWidget(listTitle) self.listHiddenLifelines = QListWidget() self.listHiddenLifelines.setFixedWidth(400) self.listHiddenLifelines.setSelectionMode( QAbstractItemView.MultiSelection) for text in self.lifelines: item = QtGui.QListWidgetItem(text) self.listHiddenLifelines.addItem(item) layout.addWidget(self.listHiddenLifelines) buttons = QtGui.QDialogButtonBox( QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel, QtCore.Qt.Horizontal, self) buttons.button(QDialogButtonBox.Ok).setText('Show') buttons.accepted.connect(self.accept) buttons.rejected.connect(self.reject) layout.addWidget(buttons) @staticmethod def getSelectedItems(lifelines, parent=None): dialog = HiddenDialog(lifelines, parent) result = dialog.exec_() return (result, [ str(x.text()) for x in dialog.listHiddenLifelines.selectedItems() ])
def __init__(self, parent=None, canvas=None): super(MyWidget, self).__init__(parent) ## 左 caps = ["みーぱん","かっきー","りさねーさん","ポンポン" ,"大園 玲","ゆっかー","おすし","かとし" ,"えんさく","掛橋 沙耶香","早川 聖来"] menu_widget = QListWidget() for i in range(11): #item = QListWidgetItem("Item {}".format(i)) item = QListWidgetItem(caps[i]) item.setTextAlignment(Qt.AlignCenter) menu_widget.addItem(item) ## 右 # 右上 _placeholder = "This is a placeholder text" text_widget = QLabel(_placeholder) text_widget.setObjectName("title") # 右下 button = QPushButton("Something") content_layout = QVBoxLayout() if canvas != None: content_layout.addWidget(canvas) else: content_layout.addWidget(text_widget) content_layout.addWidget(button) main_widget = QWidget() main_widget.setLayout(content_layout) ## 全体を構成 layout = QHBoxLayout() layout.addWidget(menu_widget, 1) layout.addWidget(main_widget, 4) self.setLayout(layout)
class PositionPanel(QDockWidget): def __init__(self): super().__init__() self.setWindowTitle("Crew Positions") self.setWidget(QWidget()) pos_dock_widget_layout = QFormLayout() self.widget().setLayout(pos_dock_widget_layout) new_pos_button = QPushButton("New Crew Position") pos_dock_widget_layout.addRow(new_pos_button) self.pos_list_widget = QListWidget() pos_dock_widget_layout.addRow(self.pos_list_widget) new_pos_button.pressed.connect(self.add_position) def add_position(self): w = QDialog() w.setWindowTitle("Create New Position") w.setLayout(QFormLayout()) pos_name = QLineEdit("New Position") w.layout().addRow(QLabel("Position Name:"), pos_name) pre_pro_days = QSpinBox() post_pro_days = QSpinBox() w.layout().addRow(QLabel("Days of pre-production:"), pre_pro_days) w.layout().addRow(QLabel("Days of immediate post-production:"), post_pro_days) accept = QPushButton("Create") accept.clicked.connect(w.accept) reject = QPushButton("Cancel") reject.clicked.connect(w.reject) w.layout().addRow(accept, reject) if w.exec_() == QDialog.Accepted: print("Days of pre-production", pre_pro_days.value(), "Days of post-productions", post_pro_days.value()) new_pos_item = QListWidgetItem(pos_name.text()) new_pos_item.setFlags(new_pos_item.flags() | Qt.ItemIsEditable) self.pos_list_widget.addItem(new_pos_item)
def __init__(self, code_list, owner): QTabWidget.__init__(self) self.CONFIRM = 'press enter again to confirm (backspace to cancel)' self.is_confirming = False self.owner = owner self.num_keys = ( Qt.Key_0, Qt.Key_1, Qt.Key_2, Qt.Key_3, Qt.Key_4, Qt.Key_5, Qt.Key_6, Qt.Key_7, Qt.Key_8, Qt.Key_9) self.number = [] colors = [] for code in code_list: if code.color not in colors: colors.append(code.color) self.setAutoFillBackground(True) self.setTabBar(QTabBar()) self.list_views = [] for i in range(len(colors)): print(colors[i]) list_widget = QListWidget(self) list_widget.setSelectionMode(QAbstractItemView.ExtendedSelection) list_widget.setFont(QFont('Source Code Pro', 16)) self.list_views.append(list_widget) count = 0 for code in code_list: if code.color != colors[i]: continue # create an item with a caption item = QListWidgetItem(f'{str(count)} - {code.code_name}') count += 1 item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) # Add the item to the model # if list.count() list_widget.addItem(item) self.addTab(list_widget, str(i)) list_widget.setAutoFillBackground(True) list_widget.setStyleSheet("QWidget {{background-color: {0};}}".format(colors[i])) self.convert_old_data()
class H5Explorer(QDialog): # pylint: disable=R0903 """Dialog for selecting a dataset in an H5 file.""" def __init__(self, items): QDialog.__init__(self) self.setWindowTitle("Select Dataset") self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) self.setWindowModality(Qt.ApplicationModal) self.label = QLabel("Choose the dataset to load:") self.label.setStyleSheet("color: #000") self.view = QListWidget() for i in items: self.view.addItem(QListWidgetItem(i)) self.buttons = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) self.buttons.accepted.connect(self._button_ok) self.buttons.rejected.connect(self._button_cancel) layout = QVBoxLayout() layout.setSizeConstraint(QLayout.SetFixedSize) layout.addWidget(self.label) layout.addWidget(self.view) layout.addWidget(self.buttons) self.setLayout(layout) def _button_ok(self): self.accept() def _button_cancel(self): self.reject() def result(self): """Returns the selected element.""" return self.view.currentItem().text()
def __init__(self, parent, person, road): super().__init__(parent) self.setWindowTitle(_("Road details")) layout = QVBoxLayout() segments_label = QLabel(_("Road segments"), self) layout.addWidget(segments_label) segments_list = QListWidget(self) segments_label.setBuddy(segments_list) segments_list.setAccessibleName(segments_label.text()) layout.addWidget(segments_list) close_button = QPushButton(_("Close"), self) close_button.clicked.connect(self.accept) layout.addWidget(close_button) self.setLayout(layout) line = get_complete_road_line(road) segments = get_line_segments(line) segments = merge_similar_line_segments(segments, config().presentation.angle_decimal_places) closest = find_closest_line_segment_of(segments, person.position_point) current_idx = None for idx, segment in enumerate(segments): segment.calculate_angle() segment.calculate_length() segment_length = format_number(segment.length, config().presentation.distance_decimal_places) segment_angle = format_number(segment.angle, config().presentation.angle_decimal_places) if not segment.current: message = _("{distance} meters in angle {angle}°").format(distance=segment_length, angle=segment_angle) else: segment_latlon = person.closest_point_to(segment.line, False) middle_distance = distance_between(person.position, segment_latlon) start_distance = distance_between(to_latlon(segment.start), segment_latlon) start_distance = format_number(start_distance, config().presentation.distance_decimal_places) middle_distance = format_number(middle_distance, config().presentation.distance_decimal_places) message = _("{start_distance} meters of {distance} meters in angle {angle}° distant from road center by {middle_distance}").format(start_distance=start_distance, distance=segment_length, angle=segment_angle, middle_distance=middle_distance) segments_list.addItem(message) if segment.current: current_idx = idx segments_list.setCurrentRow(current_idx)
class DWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) hlayout = QHBoxLayout() ##################################################### Left self.menu_level = 0 self.item_list = QListWidget() self.fill_main_item_list() #self.item_list.setMinimumWidth(256) self.item_list.setMaximumWidth(300) self.item_list.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.item_list.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) self.item_list.itemClicked[QListWidgetItem].connect(self.item_clicked) ##################################################### Right b = QTabWidget() b.addTab(QWidget(), "Primera") b.addTab(QWidget(), "Segunda") b.setMinimumWidth(768) #b.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) b.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) hlayout.addWidget(self.item_list) hlayout.addWidget(b) self.setLayout(hlayout) @Slot() def item_clicked(self, item): self.menu_level += 1 item_text = item.text() if self.menu_level < 2: self.item_list.clear() item = QListWidgetItem("< Back") item.setSizeHint(QSize(item.sizeHint().width(), 50)) self.item_list.addItem(item) for i in range(10): item = QListWidgetItem("Sub menu {} ({})".format(i, item_text)) item.setSizeHint(QSize(item.sizeHint().width(), 50)) self.item_list.addItem(item) elif "Back" in item_text: self.item_list.clear() self.menu_level = 0 self.fill_main_item_list() def fill_main_item_list(self): for i in range(10): item = QListWidgetItem("Menu {}".format(i)) item.setSizeHint(QSize(item.sizeHint().width(), 50)) self.item_list.addItem(item)
class CrewPanel(QDockWidget): def __init__(self): super().__init__() self.setWindowTitle("Crew Members") self.setWidget(QWidget()) crew_dock_widget_layout = QFormLayout() self.widget().setLayout(crew_dock_widget_layout) new_crew_button = QPushButton("New Crew Member") crew_dock_widget_layout.addRow(new_crew_button) self.crew_list_widget = QListWidget() crew_dock_widget_layout.addRow(self.crew_list_widget) new_crew_button.pressed.connect(self.add_crew_member) def add_crew_member(self): w = QDialog() w.setWindowTitle("Add New Crew Member") w.setLayout(QFormLayout()) crew_name = QLineEdit("New Crew Member") w.layout().addRow(QLabel("Crew Member Name:"), crew_name) specialization = QComboBox() specialization.addItems([ "Directing", "Cinematography", "Producing", "Production Design", "Editing", "Visual Effects" ]) w.layout().addRow(QLabel("Specialization:"), specialization) accept = QPushButton("Create") accept.clicked.connect(w.accept) reject = QPushButton("Cancel") reject.clicked.connect(w.reject) w.layout().addRow(accept, reject) if w.exec_() == QDialog.Accepted: new_crew_item = QListWidgetItem(crew_name.text()) new_crew_item.setFlags(new_crew_item.flags() | Qt.ItemIsEditable) self.crew_list_widget.addItem(new_crew_item)
def build_adminlistwidget(): list_widget = QListWidget() list_widget.items = [] users = [ ["admin", "admin"], ["admin1", "admin1"], ["admin2", "admin2"], ["admin3", "admin3"], ["admin4", "admin4"], ["admin5", "admin5"], ] for username, password in users: item = make_adminlist_item(username) list_widget.items.append(item) last_item_indice = len(list_widget.items) - 1 list_widget_item = QListWidgetItem(list_widget) list_widget_item.setSizeHint( list_widget.items[last_item_indice].sizeHint()) list_widget.addItem(list_widget_item) list_widget.setItemWidget(list_widget_item, list_widget.items[last_item_indice]) return list_widget pass
def __init__(self, parent): super().__init__() self.setWindowTitle("muSync - Sources") self.setModal(True) dialogLayout = QVBoxLayout(self) sourcesList = QListWidget() dialogLayout.addWidget(sourcesList) buttonsLayout = QHBoxLayout() okButton = QPushButton(QIcon.fromTheme("dialog-ok"), "&Ok") okButton.clicked.connect(lambda: self.__add_account(sourcesList)) okButton.setDisabled(True) buttonsLayout.addWidget(okButton) cancelButton = QPushButton(QIcon.fromTheme("dialog-cancel"), "&Cancel") cancelButton.clicked.connect(self.close) buttonsLayout.addWidget(cancelButton) dialogLayout.addLayout(buttonsLayout) for source in modules.modules.items(): sourceItem = QListWidgetItem(source[1]) sourceItem.slug = source[0] sourcesList.addItem(sourceItem) sourcesList.itemSelectionChanged.connect(lambda: okButton.setDisabled( True if sourcesList.selectedIndexes() == [] else False)) sourcesList.itemDoubleClicked.connect( lambda: self.__add_account(sourcesList))
class ToolBox(QVBoxLayout): sig = QtCore.Signal(object) listThread = None groupBoxThreadInfo = None threadvbox = None mode = None def __init__(self, mode, parentQWidget = None): QVBoxLayout.__init__(self) self.sig.connect(self.addThreadList) self.mode = mode self.sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) self.groupBoxSearch = QGroupBox() self.groupBoxSearch.setStyleSheet("QGroupBox {border: 1px solid gray; border-radius: 4px; };") vboxSearch = QVBoxLayout() self.searchTitle = QLabel("Search Messages") vboxSearch.addWidget(self.searchTitle) self.searchHLayout = QHBoxLayout() self.editTextSearch = QTextEdit('') self.editTextSearch.setFixedSize(200,30) self.buttonSearch = QPushButton('Search') self.buttonSearch.setFixedSize(100,30) self.buttonSearch.clicked.connect(self.searchMsg) vboxSearch.addWidget(self.editTextSearch) self.searchHLayout.addWidget(self.buttonSearch) self.searchCursor = QLabel() self.searchHLayout.addWidget(self.searchCursor) vboxSearch.addLayout(self.searchHLayout) self.browseHLayout = QHBoxLayout() self.buttonLookUp = QPushButton('\u21e7') #Arrow up self.buttonLookUp.setFixedWidth(100) self.buttonLookUp.clicked.connect(self.moveToPrev) self.buttonLookDown = QPushButton('\u21e9') #Arrow down self.buttonLookDown.setFixedWidth(100) self.buttonLookDown.clicked.connect(self.moveToNext) self.browseHLayout.addWidget(self.buttonLookUp) self.browseHLayout.addWidget(self.buttonLookDown) vboxSearch.addLayout(self.browseHLayout) self.groupBoxSearch.setLayout(vboxSearch) self.addWidget(self.groupBoxSearch) self.groupBoxSearch.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)) self.buttonHiddenLifelines = QPushButton('Show hidden life-lines') self.buttonHiddenLifelines.setFixedWidth(200) self.buttonHiddenLifelines.clicked.connect(self.showHiddenLifelines) self.addWidget(self.buttonHiddenLifelines) self.buttonHiddenMessages = QPushButton('Show hidden Messages') self.buttonHiddenMessages.setFixedWidth(200) self.buttonHiddenMessages.clicked.connect(self.showHiddenMessages) self.addWidget(self.buttonHiddenMessages) if const.mode_interactive == mode: self.buttonCapture = QPushButton('Capture') self.buttonCapture.setFixedWidth(200) self.buttonCapture.clicked.connect(self.notifyCapture) self.addWidget(self.buttonCapture) self.msgRcv = [] self.msgInfo = QLabel("Message Info.") self.groupBoxMessageInfo = QGroupBox() self.groupBoxMessageInfo.setStyleSheet("QGroupBox {border: 1px solid gray; border-radius: 9px; margin-top: 0.5em} QGroupBox::title {subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px;") vbox = QVBoxLayout() vbox.addWidget(self.msgInfo) self.tableTime = QTableWidget(3,2) self.tableTime.setHorizontalHeaderLabels(['-','time']) self.tableTime.setColumnWidth(0,80) self.tableTime.setColumnWidth(1,150) vwidth = self.tableTime.verticalHeader().length() hwidth = self.tableTime.horizontalHeader().height() fwidth = self.tableTime.frameWidth() * 2 self.tableTime.setFixedHeight(vwidth + hwidth + fwidth) self.tableTime.horizontalHeader().setStretchLastSection(True) self.tableTime.setItem(0,0,QTableWidgetItem('begin')) self.tableTime.setItem(0,1,QTableWidgetItem(' - ')) self.tableTime.setItem(1,0,QTableWidgetItem('end')) self.tableTime.setItem(1,1,QTableWidgetItem(' - ')) self.tableTime.setItem(2,0,QTableWidgetItem('duration')) self.tableTime.setItem(2,1,QTableWidgetItem(' - ')) vbox.addWidget(self.tableTime) self.titleArg = QLabel('Argument List') vbox.addWidget(self.titleArg) max_arg_num = 10 self.tableArgs = QTableWidget(max_arg_num,2) self.tableArgs.setHorizontalHeaderLabels(['type','value']) for idx in range(0,max_arg_num): self.tableArgs.setItem(idx,0,QTableWidgetItem()) self.tableArgs.setItem(idx,1,QTableWidgetItem()) self.tableArgs.horizontalHeader().setStretchLastSection(True) vbox.addWidget(self.tableArgs) self.titleArg = QLabel('Return Value List') vbox.addWidget(self.titleArg) max_ret_num = 4 self.tableRet = QTableWidget(max_ret_num,2) self.tableRet.setHorizontalHeaderLabels(['type','value']) for idx in range(0,max_ret_num): self.tableRet.setItem(idx,0,QTableWidgetItem()) self.tableRet.setItem(idx,1,QTableWidgetItem()) self.tableRet.horizontalHeader().setStretchLastSection(True) vwidth = self.tableRet.verticalHeader().length() hwidth = self.tableRet.horizontalHeader().height() fwidth = self.tableRet.frameWidth() * 2 self.tableRet.setFixedHeight(vwidth + hwidth + fwidth) vbox.addWidget(self.tableRet) self.buttonSrcView = QPushButton('view code') self.buttonSrcView.setFixedWidth(200) self.buttonSrcView.clicked.connect(self.openSourceViewer) self.buttonHide = QPushButton('Hide') self.buttonHide.setFixedWidth(200) self.buttonHide.clicked.connect(self.notifyHide) self.buttonHideAllMsg = QPushButton('Hide All') self.buttonHideAllMsg.setFixedWidth(200) self.buttonHideAllMsg.clicked.connect(self.hideAllMsgNamedAsSelected) self.groupBoxMessageInfo.setLayout(vbox) self.checkHideCircular = QCheckBox('Hide Circular Messages') self.checkHideCircular.setCheckState(QtCore.Qt.Unchecked) self.checkHideCircular.stateChanged.connect(self.changeHideCircularMessage) self.addWidget(self.checkHideCircular) self.addWidget(self.groupBoxMessageInfo) self.groupBoxMessageInfo.setSizePolicy(self.sizePolicy) def reset(self): for idx in reversed(range(0,self.listThread.count())): self.listThread.takeItem(idx) def setMsgInfoMessage(self,msg): self.strMessage = msg def changeHideCircularMessage(self,state): if state == QtCore.Qt.Unchecked: self.diagramView.hideCircularChanged(False) elif state == QtCore.Qt.Checked: self.diagramView.hideCircularChanged(True) def setMsgInfoModule(self,module): self.strModule = module def updateSearchStatus(self,curr,number): self.searchCursor.setText("%d/%d" % (curr,number)) def connectSourceViewer(self,viewer): self.srcViewer = viewer def openSourceViewer(self): self.srcViewer.openViewer(self.strModule,self.strMessage) def setMessageInfoTime(self,begin,end,duration): self.tableTime.item(0,1).setText(begin) self.tableTime.item(1,1).setText(end) self.tableTime.item(2,1).setText(duration + ' msec') def setMessageInfoArg(self,listParam,listArg): # Clear the contents in the table max_arg_num = 10 for idx in range(0,max_arg_num): self.tableArgs.item(idx,0).setText('') self.tableArgs.item(idx,1).setText('') if listArg: for idx, text in enumerate(listArg): self.tableArgs.item(idx,1).setText(text) for idx, text in enumerate(listParam): self.tableArgs.item(idx,0).setText(text) else: for idx in range(0,self.tableArgs.rowCount()): self.tableArgs.item(idx,1).setText('') self.tableArgs.item(idx,0).setText('') def setMessageInfoRet(self,listRet): if listRet: for idx, text in enumerate(listRet): self.tableRet.item(idx,1).setText(text) else: for idx in range(0,self.tableRet.rowCount()): self.tableRet.item(idx,1).setText('') self.tableRet.item(idx,0).setText('') def notifyInteractiveStateChanged(self,state): if const.mode_interactive != self.mode: return if const.STATE_INTERACTIVE_CAPTURING == state: self.buttonCapture.setEnabled(True) self.buttonCapture.setText('Stop Capture') if const.STATE_INTERACTIVE_PROCESSING == state: self.buttonCapture.setEnabled(False) if const.STATE_INTERACTIVE_IDLE == state: self.buttonCapture.setEnabled(True) self.buttonCapture.setText('Capture') if const.STATE_INTERACTIVE_RESET == state: self.buttonCapture.setEnabled(True) self.buttonCapture.setText('Capture') elif const.STATE_INTERACTIVE_ACTIVE == state: self.buttonCapture.setEnabled(True) self.buttonCapture.setText('Capture') def setMessageInfo(self,info): self.msgInfo.setText(info) def setAvailable(self,threads): self.sig.emit(threads) def toggleThreadDisplay(self,item): print(self.listThread.currentRow()) #if item.isSelected(): # print(item.text() + " is selected") #else: # print(item.text() + " is not selected") self.diagramView.showThread(self.listThread.currentRow(),item.isSelected()) def hideAllMsgNamedAsSelected(self): self.diagramView.hideAllMessageSelected() def addThreadList(self,threads): if not self.groupBoxThreadInfo: self.groupBoxThreadInfo = QGroupBox() self.threadInfo = QLabel("Thread Info.") self.groupBoxThreadInfo.setStyleSheet("QGroupBox {border: 1px solid gray; border-radius: 9px; margin-top: 0.5em} QGroupBox::title {subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px;") if not self.threadvbox: self.threadvbox = QVBoxLayout() if not self.listThread: self.listThread = QListWidget() self.listThread.setFixedWidth(200) self.listThread.setSelectionMode(QAbstractItemView.MultiSelection) QtCore.QObject.connect(self.listThread, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.toggleThreadDisplay) self.threadvbox.addWidget(self.threadInfo) self.threadvbox.addWidget(self.listThread) self.groupBoxThreadInfo.setLayout(self.threadvbox) self.addWidget(self.groupBoxThreadInfo) self.groupBoxThreadInfo.setSizePolicy(self.sizePolicy) for id in threads: item = QListWidgetItem(id) self.listThread.addItem(item) def connectController(self,controller): self.controller = controller self.connect(controller,QtCore.SIGNAL('setAvailable()'),self.setAvailable) def connectDiagramView(self,view): self.diagramView = view def disconnectMsgRcv(self,receiver): print("Implement this method !!! disconnectMsgRcv") def connectMsgRcv(self,receiver): self.msgRcv.append(receiver) def notifyHide(self): for rcv in self.msgRcv: rcv.activateHide(True) def showHiddenLifelines(self): response, selected_items = HiddenDialog.HiddenDialog.getSelectedItems(self.diagramView.getHiddenLifeLines()) if response: self.diagramView.showLifelines(selected_items) def showHiddenMessages(self): response, selected_items = HiddenMessageDialog.HiddenMessageDialog.getSelectedItems(self.diagramView.getHiddenMessages(),self.diagramView.getHiddenLifeLines()) if response: if selected_items[3] in self.diagramView.getHiddenLifeLines(): confirmation = ShowLifeLineDialog.ShowLifeLineDialog.confirmToShowLifeLine(selected_items[3]) if confirmation: self.diagramView.showLifelines([selected_items[3]]) self.diagramView.showMessages(selected_items) else: self.diagramView.showMessages(selected_items) def notifyCapture(self): for rcv in self.msgRcv: rcv.activateCapture(True) def moveToPrev(self): for rcv in self.msgRcv: rcv.moveToPrev() def moveToNext(self): for rcv in self.msgRcv: rcv.moveToNext() def searchMsg(self): str = self.editTextSearch.toPlainText() for rcv in self.msgRcv: rcv.searchMessage(str)
class SelectPlayersWindow(QDialog): def __init__(self, parent=None): super(SelectPlayersWindow, self).__init__(parent) self.parent = parent self.setModal(True) self.setWindowTitle("Torna résztvevők") self.resize(520, 600) self.layout = QVBoxLayout() self.setLayout(self.layout) self.read_config() self.create_torna_selection() self.nevek_layout = QHBoxLayout() self.layout.addLayout(self.nevek_layout) self.show_saved_players() self.show_torna_players() self.gomb_nev_layout = QVBoxLayout() self.nevek_layout.addLayout(self.gomb_nev_layout) self.show_current_players() self.buttonbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) self.buttonbox.clicked.connect(self.buttonbox_click) self.layout.addWidget(self.buttonbox) def create_torna_selection(self): self.tournaments = QComboBox() self.tournaments.setModelColumn(0) self.tournaments.currentIndexChanged.connect(self.torna_valasztas) self.layout.addWidget(self.tournaments) self.load_torna() def load_torna(self): torna = QSqlQueryModel() query = QSqlQuery("select * from torna_settings where aktiv=2") torna.setQuery(query) if torna.record(0).value(0): for i in range(torna.rowCount()): self.tournaments.addItem( torna.record(i).value(1), torna.record(i).value(0)) # a value(0) a torna_id else: print("Nincs aktív torna") def show_saved_players(self): self.saved_players = QListWidget() self.saved_players.setFixedHeight(500) self.saved_players.setFixedWidth(150) self.saved_players.setSortingEnabled(True) self.saved_players.itemDoubleClicked.connect(self.add_resztvevo) self.load_saved_players() self.nevek_layout.addWidget(self.saved_players) def show_torna_players(self): self.torna_players = QListWidget() self.torna_players.setFixedHeight(500) self.torna_players.setFixedWidth(150) self.torna_players.setSortingEnabled(True) self.torna_players.itemDoubleClicked.connect(self.add_resztvevo) self.load_torna_players() self.nevek_layout.addWidget(self.torna_players) def load_saved_players(self): players = QSqlQueryModel() players_query = QSqlQuery("select * from players where aktiv=1") players.setQuery(players_query) self.saved_players.clear() for i in range(players.rowCount()): item = QListWidgetItem(players.record(i).value(1)) item.setData(Qt.UserRole, players.record(i).value(0)) self.saved_players.addItem(item) def load_torna_players(self): players = QSqlQueryModel() players_query = QSqlQuery( "select * from torna_resztvevok where 1 group by player_id, player_name" ) players.setQuery(players_query) self.torna_players.clear() for i in range(players.rowCount()): item = QListWidgetItem(players.record(i).value(1)) item.setData(Qt.UserRole, players.record(i).value(0)) self.torna_players.addItem(item) def add_resztvevo(self, item): new_item = QListWidgetItem(item) new_item.setData(Qt.UserRole, item.data(Qt.UserRole)) self.current_players.addItem(new_item) query = QSqlQuery( f"insert into torna_resztvevok (player_id, player_name, torna_id) values ({new_item.data(Qt.UserRole)}, '{new_item.text()}', {self.torna_id})" ) query.exec_() def show_current_players(self): query = QSqlQuery("select max(player_id) from torna_resztvevok") query.exec_() while query.next(): self.first_new_id = int(query.value(0)) + 1 print(self.first_new_id) self.add_new = QPushButton("Új") self.add_new.clicked.connect(self.uj_ember) self.current_players = QListWidget() self.current_players.setFixedHeight(470) self.current_players.setFixedWidth(150) self.current_players.setSortingEnabled(True) self.gomb_nev_layout.addWidget(self.add_new) self.current_players.itemDoubleClicked.connect(self.remove_resztvevo) self.gomb_nev_layout.addWidget(self.current_players) def uj_ember(self): ujember, ok = QInputDialog.getText( self, "Új versenyző", '<html style="font-size: 15px;">Írd be a versenyző nevét!</html>') if ok and len(ujember): item = QListWidgetItem(ujember) item.setData(Qt.UserRole, self.first_new_id) self.current_players.addItem(item) self.first_new_id += 1 query = QSqlQuery( f"insert into torna_resztvevok (player_id, player_name, torna_id) values ({item.data(Qt.UserRole)}, '{item.text()}', {self.torna_id})" ) query.exec_() def remove_resztvevo(self, item): self.current_players.takeItem( self.current_players.row(self.current_players.selectedItems()[0])) # print(item.data(Qt.UserRole), item.text()) query = QSqlQuery( f"delete from torna_resztvevok where player_id={item.data(Qt.UserRole)} and torna_id={self.torna_id}" ) query.exec_() def torna_valasztas(self, i): self.torna_id = self.tournaments.itemData(i) players = QSqlQueryModel() players_query = QSqlQuery( f"select * from torna_resztvevok where torna_id={self.torna_id}") players.setQuery(players_query) self.current_players.clear() for i in range(players.rowCount()): item = QListWidgetItem(players.record(i).value(1)) item.setData(Qt.UserRole, players.record(i).value(0)) self.current_players.addItem(item) def buttonbox_click(self, b): if b.text() == "OK": self.accept() elif b.text() == "Cancel": self.reject() def accept(self): # for i in range(self.current_players.count()): # item = self.current_players.item(i) # print(self.torna_id, item.data(Qt.UserRole), item.text()) # itt vannak a beszúrandó adatok super().accept() # INSERT INTO `torna_resztvevok` (`player_id`, `player_name`, `torna_id`) # VALUES ('1111', 'teszt_user2', '8892') ON DUPLICATE KEY UPDATE player_name='teszt_user2'; def read_config(self): if os.path.exists('config.ini'): # Van config.ini, ki kell értékelni config.read('config.ini') self.station_id = config['DEFAULT'].get('station id') self.secret = config['DEFAULT'].get('secret key') # todo módosítani kell a torna_match táblát, hogy tartalmazza a tabla mellett a hozzá tartozó secret-et is else: # Nincs config.ini, alapértékekkel inicializálni msg = QMessageBox(self) msg.setStyleSheet("fonz-size: 20px") msg.setWindowTitle("Hiányzó beállítás file!") msg.setText( '<html style="font-size: 14px; color: red">Nem tudtam beolvasni a konfigurációt!<br></html>' + '<html style="font-size: 16px">Kérem módosítsa a beállításokat!</html>' ) msg.exec_() sys.exit(1)
def _add_character_to_list(target_list: QListWidget, character: PropertyContainer): item = QListWidgetItem() item.setText(character.get_display_name()) item.setData(QtCore.Qt.UserRole, character) target_list.addItem(item)