Контакты

Наибольший вклад в теги

Все теги (12)

Лучшие ответы пользователя

Все ответы (13)
  • Не корректное отображение кнопки WPF?

    phoenixbk
    @phoenixbk
    Вы указали большие отступы справа и снизу. В результате из-за них размер кнопки может быть меньше, чем вы указали (в зависимости от размера родителя, в данном случае окна). Вы можете выставить отступы справа и снизу в 0 и указать горизонтальное выравнивание слева и вертикальное сверху:
    <Button x:Name="btn" Content="Нажать!!!" Width="150" Height="45" Margin="45,49,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Click="btn_Click"/>
    Ответ написан
    Комментировать
  • PyQt 5: условие с QLabel.setText() не меняет значение на форме, как исправить?

    phoenixbk
    @phoenixbk
    Здравствуйте!
    А где "groupBox" добавляется в окно? Сделал простенький вариант с классном на основе QWidget. Всё отображается как надо.
    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox, QVBoxLayout, QLabel, QPushButton
    
    class Example(QWidget):
        def __init__(self):
            super().__init__()
            l = QVBoxLayout()
            b = QPushButton('Добавить без параметра!')
            b.clicked.connect(lambda: self.function1())
            b2 = QPushButton('Добавить с параметром!')
            b2.clicked.connect(lambda: self.function1(args='параметр'))
            l.addWidget(b)
            l.addWidget(b2)
            self.setLayout(l)
            self.show()
    
        def function1(self, args=None):
            groupBox = QGroupBox("Титле")
            vbox = QVBoxLayout()
            vbox.addStretch(1)
            groupBox.setLayout(vbox)
    
            integerLabel = QLabel('test')
            vbox.addWidget(integerLabel)
            print('свойство сейчас:' + integerLabel.text())
            if args is not None:
                integerLabel.setText('1')
                print('Тест попадения функции')
                print('Поменялось на:' + args)
            print('свойство сейчас 2:' + integerLabel.text())
            self.layout().addWidget(groupBox)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        w = Example()
        w.resize(250, 150)
        w.setWindowTitle('Simple')
        w.show()
        sys.exit(app.exec_())
    Ответ написан
    1 комментарий
  • Когда делать ORM mapping?

    phoenixbk
    @phoenixbk
    В своем приложении вы описываете объекты хранения в виде ООП классов. Далее, при работе с этими объектами в Python, система ORM транслирует объектные взаимодействия в SQL в соответствии с указанным провайдером.
    Например, print(Person[person_id].name) сгенерирует следующий SQL код для SQLite:
    SELECT "id", "name", "age"
    FROM "Person"
    WHERE "id" = ?

    Где вместо вопроса подставит указанный person_id. Он выполнится в SQLite, вернет данные в ORM и она уже выдаст нам запрошенные данные в виде объекта Person, из которого в данном случае мы выводим имя.
    И это будет работать так независимо от того, первый раз вы запускаете приложение или сотый.
    На официальной странице Pony ORM все довольно понятно расписано в разделе первые шаги:
    Getting Started with Pony
    Для понимания взаимодействия ORM с базой данных советую включить отладочный режим: set_sql_debug(True). В это случае в консоль будет выводиться все взаимодействие с БД.
    Ответ написан
    Комментировать
  • Как создать фильтрацию в привязанной коллекции в WPF?

    phoenixbk
    @phoenixbk
    Есть ещё вариант использовать CollectionViewSource:
    CollectionViewSource _viewSource = new CollectionViewSource();
    _viewSource.Source = _items;
    _viewSource.Filter += (s, e) =>
                  {
                      SomeItem item = e.Item as SomeItem;
                      bool accepted;
                      //проверяем наши условия. true - объект отобразится, false - не отобразится
                      e.Accepted = accepted;
                  };

    Чтобы обновить список элементов используем:
    _viewSource.View.Refresh();
    После этого для каждого элемента из _items вызовется событие Filter.
    Соответственно в ComboBox.ItemsSource биндим _viewSource.View. Таким образом в ComboBox не придется каждый раз вручную вставлять новую коллекцию.
    Ответ написан
    Комментировать
  • Если открыт весь 22 порт, безопастно ли запускать сервер в интернет?

    phoenixbk
    @phoenixbk
    Больше года у меня VPS. На порт SSH ломились, но не сильно часто судя по логам. Во всяком случае каких-то существенных нагрузок я не заметил. Ну и насколько я понял в Ubuntu Server есть автоматическая блокировка новых попыток входа при определенном количестве неверных логинов/паролей. Не настраивал, оставил как есть.
    Но на всякий случай добавил в SSH 2FA.
    https://www.linuxbabe.com/ubuntu/two-factor-authen...
    Пусть теперь хоть заломаются :)
    PS Количество попыток входа по дням:
    5099 Jul 6
    5496 Jul 7
    4094 Jul 8
    5867 Jul 9
    4378 Jul 10
    6326 Jul 11
    6585 Jul 12
    7481 Jul 13
    4505 Jul 14
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (8)