Ответы пользователя по тегу Python
  • Как проверить индекс листа?

    1na1
    @1na1
    Hello, world!
    if a[el] == 0:
    Ответ написан
    Комментировать
  • Почему if не видит слово?

    1na1
    @1na1
    Hello, world!
    Скорее всего в конце строки "прилип" перенос корретки. Простым решением может быть str.rstrip():

    # if line == 'stock': # Убрать
    if line.rstrip() == 'stock': # Добавить


    Вообще пользуйся дебагером pycharm или другим аналогичным и все встанет на свои места, не гадай при помощи print.

    Если с использованием дебагера проблемы — попробуй использовать такой print. Он покажет метки по границам слова и будет видно что в нем не так.

    # print(line)  # убрать
    print(">%s<" % line) # добавить
    Ответ написан
  • Создание класса?

    1na1
    @1na1
    Hello, world!
    Нужно читать про конструкторы. Конструктор - это специальный метод __init__(). Он как раз сделан, чтобы в него передавать входные аргументы.

    class Car:
        def __init__(self, model, color):  # Этот метод выполняется при создании объекта, в него передаются все аргументы
            self.model = model
            self.color = color
            
            print('The model is %s, color is %s' % (self.model, self.color))
    Ответ написан
    2 комментария
  • Как открыть новое окно по клику на пункт в menuBar?

    1na1
    @1na1
    Hello, world!
    В коде main_window необходимо присоединить сигнал menuBar.clicked() к методу отображения окна about_window. Метод отображения - это about_window.exec_().

    PS: Не забудь, что about_window необходимо импортировать в main_window командой import

    Приблизительно это должно выглядеть так:

    # Код окна main_window
    #
    import about_window  # Импортируем окно About
    ...
    ...
    # Конструктор main_window
    ... 
    ...
    self.menuBar.clicked.connect(self.show_about_window)  # Всякий раз при клике на menuBar выполнять self.show_about_window
    ...
    ...
    # Тело main_window
    def show_about_window(self):  # Выполняется всякий раз при клике на menuBar 
        about = about_window()  # Создать окно About
        about.exec_()  # Показать окно About
    Ответ написан
  • Как в связать объекты в PyQt?

    1na1
    @1na1 Автор вопроса
    Hello, world!
    Пока удалось решить через назначение кастомного атрибута (свойства) в каждом чекбоксе. Атрибут указывает на имя поля, которое относится к этому чекбоксу.

    Во время конструирования формы задаю атрибуты так:

    self.MyChkbox.setProperty('field_name', 'MyLineEdit')


    Потом при инициализации окна делаю так:

    for checkbox in self.findChildren(QCheckBox): # Для всех чекбоксов формы
        if checkbox.property('field_name'): # Если чекбокс имеет свойство 'field_name'
            checkbox.stateChanged.connect( # Законнектить смену статуса чекбокса к функции
                # Функция поиска поля по имени объекта, содержащегося в свойстве отправителя (чекбокса)
                lambda state : self.findChild(QLineEdit, self.sender().property('field_name')).setReadOnly( 
                    True if state == 2 else False # Выставить соответствующий статус доступности для ввода
                )
            )


    Буду очень рад любым другим предложениям. Особенно ссылке на чтиво.
    Ответ написан
    Комментировать
  • Как выгрузить определенные поля таблицы из DB Oracle 11G в файл скриптом, написанным на Python 3.4?

    1na1
    @1na1
    Hello, world!
    Алексей М., для получения результата выборки нужно использовать метод fetchall() (или подобный) объекта Cursor. Ниже пример.

    Ссылка на документ: cx-oracle.readthedocs.io/en/latest/cursor.html#Cur...

    connection = cx_Oracle.connect('scott/tiger@oradb')
    db_cursor=connection.cursor()
    db_cursor.execute("""
    SELECT USER_NAME, USER_DEPT
    FROM USERS
    ORDER BY USER_NAME""")

    # получение результата
    result = db_cursor.fetchall()
    print(result)
    Ответ написан
    Комментировать