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()
Пример #2
0
    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)
Пример #3
0
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]
Пример #4
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()
Пример #5
0
    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))
Пример #6
0
    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')
Пример #7
0
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])
Пример #8
0
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
Пример #9
0
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()
Пример #10
0
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()
Пример #11
0
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}")
Пример #12
0
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)
Пример #13
0
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)
Пример #14
0
    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)
Пример #15
0
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()
Пример #17
0
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)
Пример #18
0
    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)
Пример #19
0
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()
        ])
Пример #20
0
    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)
Пример #21
0
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)
Пример #22
0
    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()
Пример #23
0
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)
Пример #25
0
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)
Пример #26
0
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)
Пример #27
0
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
Пример #28
0
 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))
Пример #29
0
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)
Пример #30
0
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)
Пример #31
0
 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)