Ответы пользователя по тегу PyQt
  • Как получить цвет приложения на котором находится моё приложение?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Код:
    spoiler
    import sys
    from PyQt5 import QtWidgets, QtCore, QtGui
    
    
    class ClockWidget(QtWidgets.QWidget):
        def __init__(self):
            super().__init__()
    
            # Устанавливаем параметры окна
            self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.FramelessWindowHint)
            self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
    
            # Устанавливаем таймер для обновления времени
            self.timer = QtCore.QTimer(self)
            self.timer.timeout.connect(self.update_time)
            self.timer.start(1000)  # Обновляем каждую секунду
    
            # Создаем метку для отображения времени
            self.label = QtWidgets.QLabel(self)
            self.label.setAlignment(QtCore.Qt.AlignCenter)
            self.label.setStyleSheet("font-size: 48px;")  # Размер шрифта
    
            # Устанавливаем начальное время
            self.update_time()
    
            # Устанавливаем размер окна
            self.resize(200, 60)
    
            # Переменные для перемещения окна
            self.dragging = False
            self.drag_position = None
    
        def update_time(self):
            current_time = QtCore.QTime.currentTime()
            self.label.setText(current_time.toString("HH:mm:ss"))
            self.check_color_below_widget()
    
        def check_color_below_widget(self):
            # Получаем глобальные координаты нижней границы виджета
            global_pos = self.mapToGlobal(self.rect().bottomLeft())
    
            # Определяем координаты точки на 10 пикселей ниже
            point_below = global_pos + QtCore.QPoint(0, 10)
    
            # Получаем цвет пикселя в этой точке
            screen = QtWidgets.QApplication.primaryScreen()
            pixel_color = screen.grabWindow(0).toImage().pixel(point_below.x(), point_below.y())
            color = QtGui.QColor(pixel_color)
    
            # Выводим значения RGB для отладки
            print(f"Color below widget: R={color.red()}, G={color.green()}, B={color.blue()}")
    
            # Вычисляем яркость цвета
            brightness = (color.red() * 299 + color.green() * 587 + color.blue() * 114) / 1000
    
            # Устанавливаем цвет текста в зависимости от яркости
            if brightness < 128:  # Темный фон
                self.label.setStyleSheet("color: white; font-size: 48px;")
            else:  # Светлый фон
                self.label.setStyleSheet("color: black; font-size: 48px;")
    
        def paintEvent(self, event):
            # Рисуем прозрачный фон
            painter = QtGui.QPainter(self)
            painter.setRenderHint(QtGui.QPainter.Antialiasing)
            painter.setBrush(QtGui.QColor(0, 0, 0, 0))
    
        def mousePressEvent(self, event):
            if event.button() == QtCore.Qt.LeftButton:
                self.dragging = True
                self.drag_position = event.globalPos() - self.frameGeometry().topLeft()
    
        def mouseMoveEvent(self, event):
            if self.dragging:
                self.move(event.globalPos() - self.drag_position)
    
        def mouseReleaseEvent(self, event):
            if event.button() == QtCore.Qt.LeftButton:
                self.dragging = False
    
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        clock = ClockWidget()
        clock.show()
        sys.exit(app.exec_())


    673d462f556b5211575721.png
    Ответ написан
    2 комментария
  • PyQt6. Как сохранить изображение QPixmap в файл?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    import sys
    
    from PyQt6.QtGui import QPixmap
    from PyQt6.QtWidgets import QApplication
    
    app = QApplication(sys.argv)
    
    pixmap = QPixmap(r"path/to/your/image.jpg")
    pixmap.save(r"path/to/your/image.jpg", "JPG")
    Ответ написан
    Комментировать
  • Как при нажатие на клавишу клавиатуры применять функцию обработчик в pyqt5?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    В цикле создания кнопок сразу их инициализировать, используя метод setShortcutкласса QPushButton, чтобы связать функцию с конкретной клавишей?
    for i in range(10):
        number_i = QPushButton(str(i))
        number_i.setShortcut(keys[i])
        number_i.clicked.connect(lambda i=i: text_input(i))
        but_num.append(number_i)


    То же и для операций:
    but_op = []
    operations = ["+", "-", "*", "/"]
    for op in operations:
        button = QPushButton(op)
        button.setShortcut(QKeySequence(Qt.Key_Plus if op == "+" else Qt.Key_Minus if op == "-" else Qt.Key_Asterisk if op == "*" else Qt.Key_Slash))
        button.clicked.connect(lambda op=op: operations_input(op))
        but_op.append(button)
    Ответ написан
    Комментировать
  • Графические интерфейсы на Python, какие библиотеки использовать?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    remi.
    Ответ написан
    Комментировать