Вывод строки в QLabel

Рейтинг: 0Ответов: 1Опубликовано: 06.07.2023

Помогите пожалуйста с кодом. Нужно сделать вывод координат курсора в углу оконного приложения.

    ...

    self.label = QLabel('Координаты курсора: x=0, y=0', self)
    self.setCentralWidget(self.label)
    
    self.timer = QTimer()
    self.timer.timeout.connect(self.update_cursor_position)
    self.timer.start(100)  # Обновление каждые 100 мс

def update_cursor_position(self):
    cursor_pos = QCursor.pos()
    self.label.setText(f'Координаты курсора: x={cursor_pos.x()}, y={cursor_pos.y()}')

    ...

Но дело в том, что метод setText в данном случае вообще ничего не выводит в окне?

Ответы

▲ 2

Вы не предоставили минимально-воспроизводимый пример, который демонстрирует проблему и это не есть хорошо.

Я дополнил ваш пример и он работает как написано.

import sys
from PyQt5.Qt import *


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        self.centralWidget = QWidget()
        self.setCentralWidget(self.centralWidget)
  
        self.label = QLabel('Координаты курсора: x=0, y=0') 
        
        layout = QVBoxLayout(self.centralWidget)
        layout.addWidget(self.label, alignment=Qt.AlignLeft | Qt.AlignTop) 
        
        self.timer = QTimer()
        self.timer.timeout.connect(self.update_cursor_position)
        self.timer.start(100)         # Обновление каждые 100 мс

    def update_cursor_position(self):
        cursor_pos = QCursor.pos()
        #print(f'{cursor_pos}') 
        
        self.label.setText('Координаты курсора: '\
            f'<span style="color: #D93333;">x={cursor_pos.x()}, y={cursor_pos.y()}<\span>')


if __name__ == '__main__':
  app = QApplication(sys.argv)
  app.setFont(QFont("Times", 12, QFont.Bold))
  w = MainWindow()
  w.resize(500, 400)
  w.show()
  sys.exit(app.exec())

введите сюда описание изображения