Ejemplo n.º 1
0
 def setup_ui(self, parent):
     self.make_widgets(parent, EditWithComplete)
     values = self.all_values = list(self.db.all_custom(num=self.col_id))
     values.sort(key=sort_key)
     self.main_widget.setSizeAdjustPolicy(self.main_widget.AdjustToMinimumContentsLengthWithIcon)
     self.main_widget.setMinimumContentsLength(25)
     self.widgets.append(QLabel('', parent))
     w = QWidget(parent)
     layout = QHBoxLayout(w)
     layout.setContentsMargins(0, 0, 0, 0)
     self.remove_series = QCheckBox(parent)
     self.remove_series.setText(_('Remove series'))
     layout.addWidget(self.remove_series)
     self.idx_widget = QCheckBox(parent)
     self.idx_widget.setText(_('Automatically number books'))
     layout.addWidget(self.idx_widget)
     self.force_number = QCheckBox(parent)
     self.force_number.setText(_('Force numbers to start with '))
     layout.addWidget(self.force_number)
     self.series_start_number = QSpinBox(parent)
     self.series_start_number.setMinimum(1)
     self.series_start_number.setMaximum(9999999)
     self.series_start_number.setProperty("value", 1)
     layout.addWidget(self.series_start_number)
     layout.addItem(QSpacerItem(20, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
     self.widgets.append(w)
     self.idx_widget.stateChanged.connect(self.check_changed_checkbox)
     self.force_number.stateChanged.connect(self.check_changed_checkbox)
     self.series_start_number.valueChanged.connect(self.check_changed_checkbox)
     self.remove_series.stateChanged.connect(self.check_changed_checkbox)
     self.ignore_change_signals = False
Ejemplo n.º 2
0
    def __init__(self, parent=None, name=None, modal=0, fl=None):
        if fl is None:
            fl = Qt.Dialog | Qt.WindowTitleHint
        QDialog.__init__(self, parent, Qt.Dialog | Qt.WindowTitleHint)
        self.setModal(modal)

        image0 = pixmaps.tigger_logo.pm()

        # self.setSizeGripEnabled(0)
        LayoutWidget = QWidget(self)
        LayoutWidget.setSizePolicy(QSizePolicy.MinimumExpanding,
                                   QSizePolicy.MinimumExpanding)

        lo_top = QVBoxLayout(LayoutWidget)

        lo_title = QHBoxLayout(None)

        self.title_icon = QLabel(LayoutWidget)
        self.title_icon.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        self.title_icon.setPixmap(image0)
        self.title_icon.setAlignment(Qt.AlignCenter)
        lo_title.addWidget(self.title_icon)

        self.title_label = QLabel(LayoutWidget)
        self.title_label.setWordWrap(True)
        lo_title.addWidget(self.title_label)
        lo_top.addLayout(lo_title)

        lo_logos = QHBoxLayout(None)
        lo_top.addLayout(lo_logos)
        # for logo in ("astron",):
        #   icon = QLabel(LayoutWidget)
        #   icon.setSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed)
        #   icon.setPixmap(getattr(pixmaps,logo+"_logo").pm())
        #   icon.setAlignment(Qt.AlignCenter)
        #   lo_logos.addWidget(icon)

        lo_mainbtn = QHBoxLayout(None)
        lo_mainbtn.addItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        lo_top.addLayout(lo_mainbtn)

        self.btn_ok = QPushButton(LayoutWidget)
        self.btn_ok.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        self.btn_ok.setMinimumSize(QSize(60, 0))
        self.btn_ok.setAutoDefault(1)
        self.btn_ok.setDefault(1)
        lo_mainbtn.addWidget(self.btn_ok)
        lo_mainbtn.addItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))

        self.languageChange()

        LayoutWidget.adjustSize()

        # LayoutWidget.resize(QSize(489,330).expandedTo(LayoutWidget.minimumSizeHint()))
        # self.resize(QSize(489,330).expandedTo(self.minimumSizeHint()))
        # self.clearWState(Qt.WState_Polished)

        self.btn_ok.clicked.connect(self.accept)
Ejemplo n.º 3
0
 def setup_ui(self, parent):
     self.make_widgets(parent, EditWithComplete)
     values = self.all_values = list(self.db.all_custom(num=self.col_id))
     values.sort(key=sort_key)
     self.main_widget.setSizeAdjustPolicy(
         self.main_widget.AdjustToMinimumContentsLengthWithIcon)
     self.main_widget.setMinimumContentsLength(25)
     self.widgets.append(QLabel('', parent))
     w = QWidget(parent)
     layout = QHBoxLayout(w)
     layout.setContentsMargins(0, 0, 0, 0)
     self.remove_series = QCheckBox(parent)
     self.remove_series.setText(_('Remove series'))
     layout.addWidget(self.remove_series)
     self.idx_widget = QCheckBox(parent)
     self.idx_widget.setText(_('Automatically number books'))
     layout.addWidget(self.idx_widget)
     self.force_number = QCheckBox(parent)
     self.force_number.setText(_('Force numbers to start with '))
     layout.addWidget(self.force_number)
     self.series_start_number = QSpinBox(parent)
     self.series_start_number.setMinimum(1)
     self.series_start_number.setMaximum(9999999)
     self.series_start_number.setProperty("value", 1)
     layout.addWidget(self.series_start_number)
     layout.addItem(
         QSpacerItem(20, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
     self.widgets.append(w)
     self.idx_widget.stateChanged.connect(self.check_changed_checkbox)
     self.force_number.stateChanged.connect(self.check_changed_checkbox)
     self.series_start_number.valueChanged.connect(
         self.check_changed_checkbox)
     self.remove_series.stateChanged.connect(self.check_changed_checkbox)
     self.ignore_change_signals = False
Ejemplo n.º 4
0
class Ui_FindCollateralTxDlg(object):
    def setupUi(self, FindCollateralTxDlg):
        self.dlg = FindCollateralTxDlg
        FindCollateralTxDlg.resize(658, 257)
        FindCollateralTxDlg.setModal(True)
        self.vBox = QVBoxLayout(FindCollateralTxDlg)
        self.vBox.setContentsMargins(8, 8, 8, 8)
        self.vBox.setSpacing(8)
        self.hBox = QHBoxLayout()
        self.hBox.setContentsMargins(-1, 8, -1, 6)
        self.addrLabel = QLabel(FindCollateralTxDlg)
        self.hBox.addWidget(self.addrLabel)
        self.edtAddress = QLineEdit(FindCollateralTxDlg)
        self.edtAddress.setReadOnly(True)
        self.hBox.addWidget(self.edtAddress)
        spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.hBox.addItem(spacerItem)
        self.hBox.setStretch(1, 1)
        self.vBox.addLayout(self.hBox)
        self.lblMessage = QLabel(FindCollateralTxDlg)
        self.lblMessage.setText("")
        self.lblMessage.setWordWrap(True)
        self.vBox.addWidget(self.lblMessage)
        self.tableW = QTableWidget(FindCollateralTxDlg)
        self.tableW.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents)
        self.tableW.setSelectionMode(QAbstractItemView.SingleSelection)
        self.tableW.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.tableW.setShowGrid(True)
        self.tableW.setColumnCount(4)
        self.tableW.setRowCount(0)
        self.tableW.horizontalHeader().setSectionResizeMode(
            2, QHeaderView.Stretch)
        self.tableW.verticalHeader().hide()
        item = QTableWidgetItem()
        item.setText("PIVs")
        item.setTextAlignment(Qt.AlignCenter)
        self.tableW.setHorizontalHeaderItem(0, item)
        item = QTableWidgetItem()
        item.setText("Confirmations")
        item.setTextAlignment(Qt.AlignCenter)
        self.tableW.setHorizontalHeaderItem(1, item)
        item = QTableWidgetItem()
        item.setText("TX Hash")
        item.setTextAlignment(Qt.AlignCenter)
        self.tableW.setHorizontalHeaderItem(2, item)
        item = QTableWidgetItem()
        item.setText("TX Output N")
        item.setTextAlignment(Qt.AlignCenter)
        self.tableW.setHorizontalHeaderItem(3, item)
        self.vBox.addWidget(self.tableW)
        self.buttonBox = QDialogButtonBox(FindCollateralTxDlg)
        self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel
                                          | QDialogButtonBox.Ok)
        self.vBox.addWidget(self.buttonBox)
        btnCancel = self.buttonBox.button(QDialogButtonBox.Cancel)
        btnCancel.clicked.connect(self.reject)
        btnOk = self.buttonBox.button(QDialogButtonBox.Ok)
        btnOk.clicked.connect(self.accept)
Ejemplo n.º 5
0
 def setup_ui(self, parent):
     self.make_widgets(parent, EditWithComplete)
     values = self.all_values = list(self.db.all_custom(num=self.col_id))
     values.sort(key=sort_key)
     self.main_widget.setSizeAdjustPolicy(
         self.main_widget.AdjustToMinimumContentsLengthWithIcon)
     self.main_widget.setMinimumContentsLength(25)
     self.widgets.append(QLabel('', parent))
     w = QWidget(parent)
     layout = QHBoxLayout(w)
     layout.setContentsMargins(0, 0, 0, 0)
     self.remove_series = QCheckBox(parent)
     self.remove_series.setText(_('Clear series'))
     layout.addWidget(self.remove_series)
     self.idx_widget = QCheckBox(parent)
     self.idx_widget.setText(_('Automatically number books'))
     self.idx_widget.setToolTip('<p>' + _(
         'If not checked, the series number for the books will be set to 1. '
         'If checked, selected books will be automatically numbered, '
         'in the order you selected them. So if you selected '
         'Book A and then Book B, Book A will have series number 1 '
         'and Book B series number 2.') + '</p>')
     layout.addWidget(self.idx_widget)
     self.force_number = QCheckBox(parent)
     self.force_number.setText(_('Force numbers to start with '))
     self.force_number.setToolTip(
         '<p>' +
         _('Series will normally be renumbered from the highest '
           'number in the database for that series. Checking this '
           'box will tell calibre to start numbering from the value '
           'in the box') + '</p>')
     layout.addWidget(self.force_number)
     self.series_start_number = QDoubleSpinBox(parent)
     self.series_start_number.setMinimum(0.0)
     self.series_start_number.setMaximum(9999999.0)
     self.series_start_number.setProperty("value", 1.0)
     layout.addWidget(self.series_start_number)
     self.series_increment = QDoubleSpinBox(parent)
     self.series_increment.setMinimum(0.00)
     self.series_increment.setMaximum(99999.0)
     self.series_increment.setProperty("value", 1.0)
     self.series_increment.setToolTip(
         '<p>' + _('The amount by which to increment the series number '
                   'for successive books. Only applicable when using '
                   'force series numbers.') + '</p>')
     self.series_increment.setPrefix('+')
     layout.addWidget(self.series_increment)
     layout.addItem(
         QSpacerItem(20, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
     self.widgets.append(w)
     self.idx_widget.stateChanged.connect(self.a_c_checkbox_changed)
     self.force_number.stateChanged.connect(self.a_c_checkbox_changed)
     self.series_start_number.valueChanged.connect(
         self.a_c_checkbox_changed)
     self.series_increment.valueChanged.connect(self.a_c_checkbox_changed)
     self.remove_series.stateChanged.connect(self.a_c_checkbox_changed)
     self.main_widget
     self.ignore_change_signals = False
Ejemplo n.º 6
0
 def setup_ui(self, parent):
     self.make_widgets(parent, EditWithComplete)
     values = self.all_values = list(self.db.all_custom(num=self.col_id))
     values.sort(key=sort_key)
     self.main_widget.setSizeAdjustPolicy(self.main_widget.AdjustToMinimumContentsLengthWithIcon)
     self.main_widget.setMinimumContentsLength(25)
     self.widgets.append(QLabel('', parent))
     w = QWidget(parent)
     layout = QHBoxLayout(w)
     layout.setContentsMargins(0, 0, 0, 0)
     self.remove_series = QCheckBox(parent)
     self.remove_series.setText(_('Clear series'))
     layout.addWidget(self.remove_series)
     self.idx_widget = QCheckBox(parent)
     self.idx_widget.setText(_('Automatically number books'))
     self.idx_widget.setToolTip('<p>' + _(
         'If not checked, the series number for the books will be set to 1. '
         'If checked, selected books will be automatically numbered, '
         'in the order you selected them. So if you selected '
         'Book A and then Book B, Book A will have series number 1 '
         'and Book B series number 2.') + '</p>')
     layout.addWidget(self.idx_widget)
     self.force_number = QCheckBox(parent)
     self.force_number.setText(_('Force numbers to start with '))
     self.force_number.setToolTip('<p>' + _(
         'Series will normally be renumbered from the highest '
         'number in the database for that series. Checking this '
         'box will tell calibre to start numbering from the value '
         'in the box') + '</p>')
     layout.addWidget(self.force_number)
     self.series_start_number = QDoubleSpinBox(parent)
     self.series_start_number.setMinimum(0.0)
     self.series_start_number.setMaximum(9999999.0)
     self.series_start_number.setProperty("value", 1.0)
     layout.addWidget(self.series_start_number)
     self.series_increment = QDoubleSpinBox(parent)
     self.series_increment.setMinimum(0.00)
     self.series_increment.setMaximum(99999.0)
     self.series_increment.setProperty("value", 1.0)
     self.series_increment.setToolTip('<p>' + _(
         'The amount by which to increment the series number '
         'for successive books. Only applicable when using '
         'force series numbers.') + '</p>')
     self.series_increment.setPrefix('+')
     layout.addWidget(self.series_increment)
     layout.addItem(QSpacerItem(20, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
     self.widgets.append(w)
     self.idx_widget.stateChanged.connect(self.a_c_checkbox_changed)
     self.force_number.stateChanged.connect(self.a_c_checkbox_changed)
     self.series_start_number.valueChanged.connect(self.a_c_checkbox_changed)
     self.series_increment.valueChanged.connect(self.a_c_checkbox_changed)
     self.remove_series.stateChanged.connect(self.a_c_checkbox_changed)
     self.main_widget
     self.ignore_change_signals = False
Ejemplo n.º 7
0
class PlayerInfoField(QWidget): #Widget for inputting player info. 
    names = ['Alex', 'Clifford', 'Tyrone', 'Ava', 'Ralph', 'Emily', 'Falcon', 'Giselle', 'Jaeger', 'Sally', 'Quentin', 'Lara']
    
    def __init__(self, parent, index):
        super(PlayerInfoField, self).__init__(parent)
        self.index = index
        
        self.layout = QHBoxLayout()
        
        self.auto_button = Button(self, 'Auto')
        self.auto_button.setFixedWidth(60)
        self.auto_button.clicked.connect(self.generate_name)
        self.layout.addWidget(self.auto_button)
        
        self.name_field = QLineEdit()
        self.name_field.setPalette(QPalette(Qt.white))
        self.name_field.setPlaceholderText('Name')
        self.name_field.setClearButtonEnabled(True)
        self.name_field.setFixedWidth(250)
        self.layout.addWidget(self.name_field)
        
        self.AItoggle = QCheckBox()
        self.AItoggle.setText('Computer')
        self.AItoggle.setFixedWidth(100)
        self.layout.addWidget(self.AItoggle)
        self.AItoggle.stateChanged.connect(self.AIToggled)
        
        self.AIdifficulty = QComboBox()
        self.AIdifficulty.setPalette(QPalette(Qt.white))
        self.AIdifficulty.setFixedWidth(100)
        self.AIdifficulty.addItems(['Braindead', 'Easy', 'Normal', 'Hard', 'HAL-9000'])
        self.AIdifficulty.setCurrentIndex(2)
        self.AIdifficulty.setDisabled(True)
        self.layout.addWidget(self.AIdifficulty)
        
        self.spacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.layout.addItem(self.spacer)
        self.layout.setContentsMargins(0, 0, 0, 0)
        
        self.setLayout(self.layout)
        
        
    def generate_name(self):
        self.name_field.setText(PlayerInfoField.names[self.index])
     
    def AIToggled(self):
        if self.AItoggle.checkState() == Qt.Checked:
            self.AIdifficulty.setEnabled(True)
            
        else:
            self.AIdifficulty.setDisabled(True)
Ejemplo n.º 8
0
class windowTitle(QFrame):
    def __init__(self, parent, closeButton=True):
        QFrame.__init__(self, parent)
        self.setMaximumSize(QSize(9999999, 22))
        self.setObjectName("windowTitle")
        self.hboxlayout = QHBoxLayout(self)
        self.hboxlayout.setSpacing(0)
        self.hboxlayout.setContentsMargins(0, 0, 4, 0)

        self.label = QLabel(self)
        self.label.setObjectName("label")
        self.label.setStyleSheet(
            "padding-left:4px; font:bold 11px; color: #FFFFFF;")

        self.hboxlayout.addWidget(self.label)

        spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.hboxlayout.addItem(spacerItem)

        if closeButton:
            self.pushButton = QPushButton(self)
            self.pushButton.setFocusPolicy(Qt.NoFocus)
            self.pushButton.setObjectName("pushButton")
            self.pushButton.setStyleSheet("font:bold;")
            self.pushButton.setText("X")

            self.hboxlayout.addWidget(self.pushButton)

        self.dragPosition = None
        self.mainwidget = self.parent()
        self.setStyleSheet("""
            QFrame#windowTitle {background-color:#222222;color:#FFF;}
        """)

        # Initial position to top left
        self.dragPosition = self.mainwidget.frameGeometry().topLeft()

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.dragPosition = event.globalPos(
            ) - self.mainwidget.frameGeometry().topLeft()
            event.accept()

    def mouseMoveEvent(self, event):
        if event.buttons() & Qt.LeftButton:
            self.mainwidget.move(event.globalPos() - self.dragPosition)
            event.accept()
Ejemplo n.º 9
0
class windowTitle(QFrame):
    def __init__(self, parent, closeButton=True):
        QFrame.__init__(self, parent)
        self.setMaximumSize(QSize(9999999,22))
        self.setObjectName("windowTitle")
        self.hboxlayout = QHBoxLayout(self)
        self.hboxlayout.setSpacing(0)
        self.hboxlayout.setContentsMargins(0,0,4,0)

        self.label = QLabel(self)
        self.label.setObjectName("label")
        self.label.setStyleSheet("padding-left:4px; font:bold 11px; color: #FFFFFF;")

        self.hboxlayout.addWidget(self.label)

        spacerItem = QSpacerItem(40,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
        self.hboxlayout.addItem(spacerItem)

        if closeButton:
            self.pushButton = QPushButton(self)
            self.pushButton.setFocusPolicy(Qt.NoFocus)
            self.pushButton.setObjectName("pushButton")
            self.pushButton.setStyleSheet("font:bold;")
            self.pushButton.setText("X")

            self.hboxlayout.addWidget(self.pushButton)

        self.dragPosition = None
        self.mainwidget = self.parent()
        self.setStyleSheet("""
            QFrame#windowTitle {background-color:#222222;color:#FFF;}
        """)

        # Initial position to top left
        self.dragPosition = self.mainwidget.frameGeometry().topLeft()

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.dragPosition = event.globalPos() - self.mainwidget.frameGeometry().topLeft()
            event.accept()

    def mouseMoveEvent(self, event):
        if event.buttons() & Qt.LeftButton:
            self.mainwidget.move(event.globalPos() - self.dragPosition)
            event.accept()
Ejemplo n.º 10
0
class IP_list(QDialog):
    def __init__(self, root):
        super().__init__(root)
        self.main = root

        self.setWindowTitle('Список IP')
        self.setFixedWidth(504)
        self.layout_tw = QVBoxLayout(self)

        self.layout_b = QHBoxLayout()
        self.layout_b.addItem(QSpacerItem(150, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))

        self.tableWidget = QTableWidget(self)
        self.tableWidget.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
        self.tableWidget.setGeometry(QRect(20, 20, 464, 81))
        self.tableWidget.setColumnCount(4)

        hor_header = self.tableWidget.horizontalHeader()
        hor_header.setSectionResizeMode(0, QHeaderView.Stretch)
        hor_header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
        hor_header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
        hor_header.setSectionResizeMode(3, QHeaderView.ResizeToContents)
        self.layout_tw.addWidget(self.tableWidget)
        self.layout_tw.addLayout(self.layout_b)

        self.pb_cle = QPushButton(self)
        self.pb_cle.setGeometry(QRect(0, 490, 21, 20))
        self.pb_cle.setToolTip('Очистить  таблицу')
        self.pb_cle.setIcon(QIcon('допочки\_broom.png'))
        self.pb_cle.clicked.connect(self.del_all)
        self.layout_b.addWidget(self.pb_cle)

        self.pb_row_add = QPushButton(self)
        self.pb_row_add.setGeometry(QRect(20, 490, 21, 20))
        self.pb_row_add.setToolTip('Добавить строчку')
        self.pb_row_add.setIcon(QIcon('допочки\_+.png'))
        self.pb_row_add.clicked.connect(self.row_add)
        self.layout_b.addWidget(self.pb_row_add)

        self.pb_row_rem = QPushButton(self)
        self.pb_row_rem.setGeometry(QRect(50, 490, 21, 20))
        self.pb_row_rem.setToolTip('Убрать строчку')
        self.pb_row_rem.setIcon(QIcon('допочки\_-.png'))
        self.pb_row_rem.clicked.connect(self.row_rem)
        self.layout_b.addWidget(self.pb_row_rem)

        self.pb_ip = QPushButton(self)
        self.pb_ip.setGeometry(QRect(430, 490, 21, 20))
        self.pb_ip.setToolTip('Загрузить из файла')
        self.pb_ip.setIcon(QIcon('допочки\_ip.png'))
        self.pb_ip.clicked.connect(self.get_IPs)
        self.layout_b.addWidget(self.pb_ip)

        item = QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(0, item)
        item.setText("IP адрес")

        item_2 = QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(1, item_2)
        item_2.setText("Порт")

        item_3 = QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(2, item_3)
        item_3.setText("Относится к")

        item_4 = QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(3, item_4)
        item_4.setText("Проверка")

        self.tableWidget.cellChanged.connect(self.onCellChanged)


    def del_all(self):
        self.tableWidget.setRowCount(0)

    def row_add(self):
        i = self.tableWidget.rowCount()
        self.tableWidget.insertRow(i)
        vheader = self.tableWidget.verticalHeader()
        vheader.setSectionResizeMode(i, QHeaderView.ResizeToContents)
        combobox = QComboBox()
        combobox.addItem("Any")
        combobox.addItem("Source")
        combobox.addItem("Destination")
        self.tableWidget.setCellWidget(i, 2, combobox)

        item = QTableWidgetItem()
        brush = QBrush(QColor(0, 0, 0))
        brush.setStyle(Qt.Dense4Pattern)
        self.tableWidget.setItem(i, 3, item)
        item.setFlags(Qt.ItemIsEnabled)
        item.setBackground(brush)

    def row_rem(self):
        cell = self.tableWidget.currentRow()
        self.tableWidget.removeRow(cell)

    def get_IPs(self):
        result, bullshit = QFileDialog.getOpenFileName(self, "Выберите txt/csv-файл", getcwd(), "files (*.txt; *.csv)")
        # нельзя нажимать на крест
        with open(str(result), "r") as fileInput:
            x = self.tableWidget.rowCount()
            for row in fileInput:
                if result.endswith("txt"):
                    if ":" not in row:
                        (ip, port) = (row.rstrip(), '')
                    else:
                        (ip, port) = row.split(":")
                        port = port.rstrip()

                elif result.endswith("csv"):
                    if ";" not in row:
                        (ip, port) = (row.rstrip(), '')
                    else:
                        (ip, port) = row.split(";")
                        port = port.rstrip()

                self.tableWidget.insertRow(x)
                vheader = self.tableWidget.verticalHeader()
                vheader.setSectionResizeMode(x, QHeaderView.ResizeToContents)
                self.tableWidget.setItem(x, 0, QTableWidgetItem(ip))
                self.tableWidget.setItem(x, 1, QTableWidgetItem(port))
                combobox = QComboBox()
                combobox.addItem("Any")
                combobox.addItem("Source")
                combobox.addItem("Destination")
                self.tableWidget.setCellWidget(x, 2, combobox)
                x += 1

    def closeEvent(self, event):
        self.main.pt_addr.clear()
        for i in range(self.tableWidget.rowCount()):
            item = self.tableWidget.item(i, 3)
            if item is not None and item.background().color().name() == '#00ff00':
                self.main.pt_addr.appendPlainText("")
                for y in range(2):
                    if self.tableWidget.item(i, y) is not None:
                        self.main.pt_addr.insertPlainText(self.tableWidget.item(i, y).text())
                    else:
                        self.main.pt_addr.insertPlainText("")
                    if y < 2:
                        self.main.pt_addr.insertPlainText(":")


                if self.tableWidget.cellWidget(i, 2).currentText() == "Any":
                    self.main.pt_addr.insertPlainText("A")
                elif self.tableWidget.cellWidget(i, 2).currentText() == "Source":
                    self.main.pt_addr.insertPlainText("S")
                else:
                    self.main.pt_addr.insertPlainText("D")

        self.close()

    def onCellChanged(self, row, column):
        if column in (0, 1):
            item1 = self.tableWidget.item(row, 0)
            if item1 is not None:
                item1 = item1.text().replace(' ', '')
                try:
                    ipaddress.ip_address(item1)
                except ValueError:
                    if item1 == '':
                        col0 = 2
                    else:
                        col0 = 0
                else:
                    col0 = 1
            else:
                col0 = 2

            item2 = self.tableWidget.item(row, 1)
            if item2 is not None:
                item2 = item2.text().replace(' ', '')
                if item2.isnumeric() and int(item2) <= 65535:
                    col1 = 1
                elif item2 == '':
                    col1 = 2
                else:
                    col1 = 0
            else:
                col1 = 2

            if (col0 == 0 and col1 == 0)\
                    or (col0 == 2 and col1 == 2):
                backgr = QTableWidgetItem()
                brush = QBrush(QColor(255, 0, 0))
                brush.setStyle(Qt.SolidPattern)
                backgr.setBackground(brush)
                item = QTableWidgetItem()
                self.tableWidget.setItem(row, 3, item)
                item.setFlags(Qt.ItemIsEnabled)
                item.setBackground(brush)

            if (col0 == 0 and (col1 == 1 or col1 == 2))\
                    or (col1 == 0 and (col0 == 1 or col0 == 2)):
                backgr = QTableWidgetItem()
                brush = QBrush(QColor(255, 127, 0))
                brush.setStyle(Qt.SolidPattern)
                backgr.setBackground(brush)
                item = QTableWidgetItem()
                self.tableWidget.setItem(row, 3, item)
                item.setFlags(Qt.ItemIsEnabled)
                item.setBackground(brush)

            if (col0 == 1 and (col1 == 1 or col1 == 2))\
                    or (col1 == 1 and (col0 == 1 or col0 == 2)):
                backgr = QTableWidgetItem()
                brush = QBrush(QColor(0, 255, 0))
                brush.setStyle(Qt.SolidPattern)
                backgr.setBackground(brush)
                item = QTableWidgetItem()
                self.tableWidget.setItem(row, 3, item)
                item.setFlags(Qt.ItemIsEnabled)
                item.setBackground(brush)
        else:
            pass
Ejemplo n.º 11
0
class Config(QDialog):
    '''
    Configuration dialog for single book conversion. If accepted, has the
    following important attributes

    output_format - Output format (without a leading .)
    input_format  - Input format (without a leading .)
    opf_path - Path to OPF file with user specified metadata
    cover_path - Path to user specified cover (can be None)
    recommendations - A pickled list of 3 tuples in the same format as the
    recommendations member of the Input/Output plugins.
    '''
    def __init__(self,
                 parent,
                 db,
                 book_id,
                 preferred_input_format=None,
                 preferred_output_format=None):
        QDialog.__init__(self, parent)
        self.setupUi()
        self.opt_individual_saved_settings.setVisible(False)
        self.db, self.book_id = db, book_id

        self.setup_input_output_formats(self.db, self.book_id,
                                        preferred_input_format,
                                        preferred_output_format)
        self.setup_pipeline()

        self.input_formats.currentIndexChanged[native_string_type].connect(
            self.setup_pipeline)
        self.output_formats.currentIndexChanged[native_string_type].connect(
            self.setup_pipeline)
        self.groups.setSpacing(5)
        self.groups.activated[(QModelIndex)].connect(self.show_pane)
        self.groups.clicked[(QModelIndex)].connect(self.show_pane)
        self.groups.entered[(QModelIndex)].connect(self.show_group_help)
        rb = self.buttonBox.button(self.buttonBox.RestoreDefaults)
        rb.setText(_('Restore &defaults'))
        rb.clicked.connect(self.restore_defaults)
        self.groups.setMouseTracking(True)
        geom = gprefs.get('convert_single_dialog_geom', None)
        if geom:
            self.restoreGeometry(geom)
        else:
            self.resize(self.sizeHint())

    def setupUi(self):
        self.setObjectName("Dialog")
        self.resize(1024, 700)
        self.setWindowIcon(QIcon(I('convert.png')))
        self.gridLayout = QGridLayout(self)
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.input_label = QLabel(self)
        self.input_label.setObjectName("input_label")
        self.horizontalLayout.addWidget(self.input_label)
        self.input_formats = QComboBox(self)
        self.input_formats.setSizeAdjustPolicy(
            QComboBox.AdjustToMinimumContentsLengthWithIcon)
        self.input_formats.setMinimumContentsLength(5)
        self.input_formats.setObjectName("input_formats")
        self.horizontalLayout.addWidget(self.input_formats)
        self.opt_individual_saved_settings = QCheckBox(self)
        self.opt_individual_saved_settings.setObjectName(
            "opt_individual_saved_settings")
        self.horizontalLayout.addWidget(self.opt_individual_saved_settings)
        spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.label_2 = QLabel(self)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout.addWidget(self.label_2)
        self.output_formats = QComboBox(self)
        self.output_formats.setSizeAdjustPolicy(
            QComboBox.AdjustToMinimumContentsLengthWithIcon)
        self.output_formats.setMinimumContentsLength(5)
        self.output_formats.setObjectName("output_formats")
        self.horizontalLayout.addWidget(self.output_formats)
        self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 2)
        self.groups = QListView(self)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(1)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.groups.sizePolicy().hasHeightForWidth())
        self.groups.setSizePolicy(sizePolicy)
        self.groups.setTabKeyNavigation(True)
        self.groups.setIconSize(QSize(48, 48))
        self.groups.setWordWrap(True)
        self.groups.setObjectName("groups")
        self.gridLayout.addWidget(self.groups, 1, 0, 3, 1)
        self.scrollArea = QScrollArea(self)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(4)
        sizePolicy.setVerticalStretch(10)
        sizePolicy.setHeightForWidth(
            self.scrollArea.sizePolicy().hasHeightForWidth())
        self.scrollArea.setSizePolicy(sizePolicy)
        self.scrollArea.setFrameShape(QFrame.NoFrame)
        self.scrollArea.setLineWidth(0)
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setObjectName("scrollArea")
        self.scrollAreaWidgetContents = QWidget()
        self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 810, 494))
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
        self.verticalLayout_3 = QVBoxLayout(self.scrollAreaWidgetContents)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.stack = QStackedWidget(self.scrollAreaWidgetContents)
        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.stack.sizePolicy().hasHeightForWidth())
        self.stack.setSizePolicy(sizePolicy)
        self.stack.setObjectName("stack")
        self.page = QWidget()
        self.page.setObjectName("page")
        self.stack.addWidget(self.page)
        self.page_2 = QWidget()
        self.page_2.setObjectName("page_2")
        self.stack.addWidget(self.page_2)
        self.verticalLayout_3.addWidget(self.stack)
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        self.gridLayout.addWidget(self.scrollArea, 1, 1, 1, 1)
        self.buttonBox = QDialogButtonBox(self)
        self.buttonBox.setOrientation(Qt.Horizontal)
        self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel
                                          | QDialogButtonBox.Ok
                                          | QDialogButtonBox.RestoreDefaults)
        self.buttonBox.setObjectName("buttonBox")
        self.gridLayout.addWidget(self.buttonBox, 3, 1, 1, 1)
        self.help = QTextEdit(self)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.help.sizePolicy().hasHeightForWidth())
        self.help.setSizePolicy(sizePolicy)
        self.help.setMaximumHeight(80)
        self.help.setObjectName("help")
        self.gridLayout.addWidget(self.help, 2, 1, 1, 1)
        self.input_label.setBuddy(self.input_formats)
        self.label_2.setBuddy(self.output_formats)
        self.input_label.setText(_("&Input format:"))
        self.opt_individual_saved_settings.setText(
            _("Use &saved conversion settings for individual books"))
        self.label_2.setText(_("&Output format:"))

        self.buttonBox.accepted.connect(self.accept)
        self.buttonBox.rejected.connect(self.reject)

    def sizeHint(self):
        desktop = QCoreApplication.instance().desktop()
        geom = desktop.availableGeometry(self)
        nh, nw = max(300, geom.height() - 100), max(400, geom.width() - 70)
        return QSize(nw, nh)

    def restore_defaults(self):
        delete_specifics(self.db, self.book_id)
        self.setup_pipeline()

    @property
    def input_format(self):
        return unicode_type(self.input_formats.currentText()).lower()

    @property
    def output_format(self):
        return unicode_type(self.output_formats.currentText()).lower()

    @property
    def manually_fine_tune_toc(self):
        for i in range(self.stack.count()):
            w = self.stack.widget(i)
            if hasattr(w, 'manually_fine_tune_toc'):
                return w.manually_fine_tune_toc.isChecked()

    def setup_pipeline(self, *args):
        oidx = self.groups.currentIndex().row()
        input_format = self.input_format
        output_format = self.output_format
        self.plumber = create_dummy_plumber(input_format, output_format)

        def widget_factory(cls):
            return cls(self.stack, self.plumber.get_option_by_name,
                       self.plumber.get_option_help, self.db, self.book_id)

        self.mw = widget_factory(MetadataWidget)
        self.setWindowTitle(
            _('Convert') + ' ' + unicode_type(self.mw.title.text()))
        lf = widget_factory(LookAndFeelWidget)
        hw = widget_factory(HeuristicsWidget)
        sr = widget_factory(SearchAndReplaceWidget)
        ps = widget_factory(PageSetupWidget)
        sd = widget_factory(StructureDetectionWidget)
        toc = widget_factory(TOCWidget)
        from calibre.gui2.actions.toc_edit import SUPPORTED
        toc.manually_fine_tune_toc.setVisible(
            output_format.upper() in SUPPORTED)
        debug = widget_factory(DebugWidget)

        output_widget = self.plumber.output_plugin.gui_configuration_widget(
            self.stack, self.plumber.get_option_by_name,
            self.plumber.get_option_help, self.db, self.book_id)
        input_widget = self.plumber.input_plugin.gui_configuration_widget(
            self.stack, self.plumber.get_option_by_name,
            self.plumber.get_option_help, self.db, self.book_id)
        while True:
            c = self.stack.currentWidget()
            if not c:
                break
            self.stack.removeWidget(c)

        widgets = [self.mw, lf, hw, ps, sd, toc, sr]
        if input_widget is not None:
            widgets.append(input_widget)
        if output_widget is not None:
            widgets.append(output_widget)
        widgets.append(debug)
        for w in widgets:
            self.stack.addWidget(w)
            w.set_help_signal.connect(self.help.setPlainText)

        self._groups_model = GroupModel(widgets)
        self.groups.setModel(self._groups_model)

        idx = oidx if -1 < oidx < self._groups_model.rowCount() else 0
        self.groups.setCurrentIndex(self._groups_model.index(idx))
        self.stack.setCurrentIndex(idx)
        try:
            shutil.rmtree(self.plumber.archive_input_tdir, ignore_errors=True)
        except:
            pass

    def setup_input_output_formats(self, db, book_id, preferred_input_format,
                                   preferred_output_format):
        if preferred_output_format:
            preferred_output_format = preferred_output_format.upper()
        output_formats = get_output_formats(preferred_output_format)
        input_format, input_formats = get_input_format_for_book(
            db, book_id, preferred_input_format)
        preferred_output_format = preferred_output_format if \
            preferred_output_format in output_formats else \
            sort_formats_by_preference(output_formats,
                    [prefs['output_format']])[0]
        self.input_formats.addItems(
            (unicode_type(x.upper()) for x in input_formats))
        self.output_formats.addItems(
            (unicode_type(x.upper()) for x in output_formats))
        self.input_formats.setCurrentIndex(input_formats.index(input_format))
        self.output_formats.setCurrentIndex(
            output_formats.index(preferred_output_format))

    def show_pane(self, index):
        self.stack.setCurrentIndex(index.row())

    def accept(self):
        recs = GuiRecommendations()
        for w in self._groups_model.widgets:
            if not w.pre_commit_check():
                return
            x = w.commit(save_defaults=False)
            recs.update(x)
        self.opf_file, self.cover_file = self.mw.opf_file, self.mw.cover_file
        self._recommendations = recs
        if self.db is not None:
            recs['gui_preferred_input_format'] = self.input_format
            save_specifics(self.db, self.book_id, recs)
        self.break_cycles()
        QDialog.accept(self)

    def reject(self):
        self.break_cycles()
        QDialog.reject(self)

    def done(self, r):
        if self.isVisible():
            gprefs['convert_single_dialog_geom'] = \
                bytearray(self.saveGeometry())
        return QDialog.done(self, r)

    def break_cycles(self):
        for i in range(self.stack.count()):
            w = self.stack.widget(i)
            w.break_cycles()

    @property
    def recommendations(self):
        recs = [(k, v, OptionRecommendation.HIGH)
                for k, v in self._recommendations.items()]
        return recs

    def show_group_help(self, index):
        widget = self._groups_model.widgets[index.row()]
        self.help.setPlainText(widget.HELP)
Ejemplo n.º 12
0
class PlayerInfo(QWidget):
    def __init__(self, parent, player):
        super(PlayerInfo, self).__init__(parent)
        self.setMaximumWidth(300)
        self.player = player

        self.mainlayout = QHBoxLayout()

        self.active_icon = QLabel()
        self.active_icon.setPixmap(QPixmap('img/arrow.png'))
        self.active_icon.setScaledContents(True)
        self.active_icon.setFixedSize(30, 20)

        self.type_icon = QLabel()
        if type(player) == AIPlayer:
            self.type_icon.setPixmap(QPixmap('img/robot.png'))
        else:
            self.type_icon.setPixmap(QPixmap('img/human.png'))
        self.type_icon.setScaledContents(True)
        self.type_icon.setFixedSize(20, 20)
        self.mainlayout.addWidget(self.type_icon)

        self.name_label = QLabel(player.name + ': ')
        self.score_label = QLabel(str(player.score))
        self.mainlayout.addWidget(self.name_label)
        self.mainlayout.addWidget(self.score_label)
        self.mainlayout.addItem(
            QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))

        self.cards_icon = QLabel()
        self.cards_icon.setPixmap(QPixmap('img/red_back.png'))
        self.cards_icon.setScaledContents(True)
        self.cards_icon.setFixedSize(20, 30)
        self.mainlayout.addWidget(self.cards_icon)

        self.cards_label = QLabel(str(len(player.deck)))
        self.mainlayout.addWidget(self.cards_label)

        self.spades_icon = QLabel()
        self.spades_icon.setPixmap(QPixmap('img/spade2.png'))
        self.spades_icon.setScaledContents(True)
        self.spades_icon.setFixedSize(20, 20)
        self.mainlayout.addWidget(self.spades_icon)

        self.spades_label = QLabel(str(len(player.deck)))
        self.mainlayout.addWidget(self.spades_label)

        self.sweeps_icon = QLabel()
        self.sweeps_icon.setPixmap(QPixmap('img/empty.png'))
        self.sweeps_icon.setScaledContents(True)
        self.sweeps_icon.setFixedSize(20, 30)
        self.mainlayout.addWidget(self.sweeps_icon)

        self.sweeps_label = QLabel(str(player.sweeps))
        self.mainlayout.addWidget(self.sweeps_label)

        self.mainlayout.setContentsMargins(1, 1, 1, 1)
        self.setLayout(self.mainlayout)

    def set_active(self):
        self.mainlayout.insertWidget(1, self.active_icon)
        self.active_icon.show()

    def set_inactive(self):
        self.mainlayout.removeWidget(self.active_icon)
        self.active_icon.hide()

    def update_info(self):
        self.cards_label.setText((str(len(self.player.deck))))
        self.spades_label.setText(
            (str(len([c for c in self.player.deck if c.suit == 'Spades']))))
        self.sweeps_label.setText(str(self.player.sweeps))

    def update_score(self):
        self.score_label.setText(str(self.player.score))
Ejemplo n.º 13
0
class SceneInterface(QMainWindow):
    """Класс интерфейса квеста"""
    def __init__(self):
        """Инициализация интерфейса"""
        super().__init__()

        self.bg = QLabel(self)
        self.bg.move(0, 0)
        self.bg.setPixmap(QPixmap("bg.jpg"))
        self.bg.resize(800, 560)

        self.exit = QPushButton('Выход', self)
        self.exit.resize(105, 40)
        self.exit.move(675, 510)
        self.exit.setFont(QFont("PSG Font", 11))
        self.exit.clicked.connect(self.close)

        self.restart = QPushButton('Рестарт', self)
        self.restart.resize(110, 40)
        self.restart.move(560, 510)
        self.restart.setFont(QFont("PSG Font", 11))
        self.restart.clicked.connect(self.restart_quest)

        self.opnsave = QPushButton('Загрузить', self)
        self.opnsave.resize(105, 40)
        self.opnsave.move(135, 510)
        self.opnsave.setFont(QFont("PSG Font", 11))
        self.opnsave.clicked.connect(self.load_quest)

        self.savebtn = QPushButton('Сохранить', self)
        self.savebtn.resize(110, 40)
        self.savebtn.move(20, 510)
        self.savebtn.setFont(QFont("PSG Font", 11))
        self.savebtn.clicked.connect(self.save_quest)

        self.text = QPlainTextEdit(self)
        self.text.move(20, 20)
        self.text.resize(530, 270)
        self.text.setReadOnly(True)
        self.text.setFont(QFont("PSG Font", 11))
        self.text.setStyleSheet("background: rgba(255, 255, 255, 0.9);")

        self.player_data = QPlainTextEdit(self)
        self.player_data.move(560, 300)
        self.player_data.resize(220, 175)
        self.player_data.setReadOnly(True)
        self.player_data.setFont(QFont("PSG Font", 11))
        self.player_data.setStyleSheet("background: rgba(238, 238, 238, 0.97);\
                                                border:none;")

        self.name_player = QLineEdit(self)
        self.name_player.setPlaceholderText("Введите имя...")
        self.name_player.resize(220, 44)
        self.name_player.move(560, 245)
        self.name_player.setFont(QFont("PSG Font", 11))
        self.name_player.setStyleSheet("background: rgba(255, 255, 255, 0.90);\
                                                border:none;\
                                                padding-left: 5px;")

        self.img = QLabel(self)
        self.img.resize(220, 220)
        self.img.move(560, 20)

        self.layout = QVBoxLayout(self)

        self.btn_layout = QHBoxLayout(self)
        self.btn_layout.addItem(
            QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.layout.addLayout(self.btn_layout)

        self.buttons = []
        for btn in range(4):
            button = QPushButton("", self)
            button.resize(530, 40)
            button.setFont(QFont("PSG Font", 11))
            button.setStyleSheet("background: rgba(236, 236, 236, 0.7);")
            button.move(20, (45 * btn) + 300)
            button.clicked.connect(self.get_key_button_submited)
            self.btn_layout.addWidget(button)
            self.buttons += [button]

    def get_name_user(self):
        """Возвращает имя игрока"""
        return self.name_player.text()

    def init_buttons(self, names):
        """Иницилизация кнопок"""
        while len(names) < 4:
            names += [""]
        for i in range(4):
            self.buttons[i].setText(names[i])
            if names[i]:
                self.buttons[i].setEnabled(True)
                self.buttons[i].setStyleSheet(
                    "background: rgba(236, 236, 236, 0.7);")
            else:
                self.buttons[i].setEnabled(False)
                self.buttons[i].setStyleSheet(
                    "background: rgba(236, 236, 236, 0);")

    def init_text(self, text):
        """Иницилизация текста на текущей сцене"""
        self.text.setPlainText(text)

    def init_image(self, image):
        """Иницилизация картинки сцены"""
        self.img.setPixmap(QPixmap(image))

    def init_player_data(self, data):
        """Иницилизация характеристики игрока"""
        self.player_data.setPlainText(data)

    def init_name_scene(self, name):
        """Иницилизация имени сцены"""
        self.setWindowTitle(name)

    def init_name_player(self, name):
        """Иницилизация имени игрока"""
        self.name_player.setText(name)

    def set_name_user_mode(self, mode):
        """Иницилизация редактируемости поля имени игрока"""
        self.name_player.setReadOnly(mode)

    def get_key_button_submited(self):
        """Какую из кнопок нажали"""
        self.submitted(self.sender().text())

    def update(self,
               name="",
               text="",
               user="",
               image="",
               pldata="",
               buttons=[],
               user_disabled=True):
        """Обновление сцены"""
        self.init_name_scene(name)
        self.init_text(text)
        self.init_buttons(buttons)
        self.init_name_player(user)
        self.init_image(image)
        self.init_player_data(pldata)
        self.set_name_user_mode(user_disabled)

    def submitted(self, variant):
        """Обработка нажатия на кнопки"""
        ways = quest.data["ways"]
        name = self.get_name_user()
        for key, value in ways.items():
            if value == variant:
                if key == "1 4" and not name:
                    QMessageBox.about(self, "Ошибка!",
                                      "Введите пожалуйста имя.")
                    return
                quest.user_move(key)
                self.name_player.setText(name)

    def restart_quest(self):
        """Вызов рестарта у квеста"""
        quest.restart()

    def save_quest(self):
        """Сохранение квеста"""
        quest.save()

    def load_quest(self):
        """Загрузка квеста"""
        quest.load()