как вывести координаты курсора в pyqt5 ?

vanyathtw

Новичок
Пользователь
Июл 2, 2023
7
0
1
всем привет. помогите, как в уже готовый проект на pyqt добавить постоянный вывод координат?
 
Последнее редактирование:

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
423
115
43
nometa.xyz
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
423
115
43
Python:
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QCursor


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
       
        self.label = QLabel()
        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()}')


if __name__ == '__main__':
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()
 

vanyathtw

Новичок
Пользователь
Июл 2, 2023
7
0
1
Python:
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QCursor


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
      
        self.label = QLabel()
        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()}')


if __name__ == '__main__':
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()
а как постоянно выводить эти координаты? метод setText не работает в моем случае
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
423
115
43
а как постоянно выводить эти координаты?
сейчас координаты и так постоянно "выводятся" в окне, обновляются каждые 100 мс.
метод setText не работает в моем случае
Подробней, что происходит, ошибки есть?
Я проверял код перед отправкой, всё работало
 

vanyathtw

Новичок
Пользователь
Июл 2, 2023
7
0
1
сейчас координаты и так постоянно "выводятся" в окне, обновляются каждые 100 мс.

Подробней, что происходит, ошибки есть?
Я проверял код перед отправкой, всё работало
да код рабочий, но дело в том, что если я его запихиваю в проект, то ничего не происходит (вполне возможно, что я его не в ту часть кода вставляю)
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
423
115
43
но дело в том, что если я его запихиваю в проект, то ничего не происходит (вполне возможно, что я его не в ту часть кода вставляю)
и кто в этом виноват? Показать свой секретный проект мы не хотим, а куда вставить подсказку не знаем. Вот и думаем что теперь делать и как дальше жить?;)
 

vanyathtw

Новичок
Пользователь
Июл 2, 2023
7
0
1
и кто в этом виноват? Показать свой секретный проект мы не хотим, а куда вставить подсказку не знаем. Вот и думаем что теперь делать и как дальше жить?;)
о, я щас перепроверил, он выдает предупреждение по поводу этого куска кода - QWidget: Must construct a QApplication before a QWidget
а сам основной файл проекта вот
 

Вложения

  • app.txt
    93,6 КБ · Просмотры: 2

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
423
115
43
а сам основной файл проекта вот
я конечно не спец, но, как по мне, тут полная каша творится. Например, почему 2 раза в одном классе определен метод __инит__? Почему используется qtpy наравне с самим PyQt5?
Вот такая запись
Python:
from labelme.widgets import BrightnessContrastDialog
from labelme.widgets import Canvas
from labelme.widgets import FileDialogPreview
from labelme.widgets import LabelDialog
from labelme.widgets import LabelListWidget
from labelme.widgets import LabelListWidgetItem
from labelme.widgets import ToolBar
from labelme.widgets import UniqueLabelQListWidget
from labelme.widgets import ZoomWidget
пишется проще
Python:
from labelme.widgets import (BrightnessContrastDialog, Canvas, FileDialogPreview, LabelDialog, LabelListWidget,
                            LabelListWidgetItem, LabelListWidgetItem, ToolBar, UniqueLabelQListWidget, ZoomWidget)

Вот тут вообще не понятно:
Python:
from PyQt5.QtWidgets import *
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
т.е. сначала мы импортируем все атрибуты модуля QtWidgets, а затем ещё QApplication, QMainWindow, QLabel. Но зачем? Они и так уже импортированы.

Есть много неиспользуемых переменных, а такая запись приведет к ошибке area, Deff = 0, 0.0, None, None и много много других несостыковок и непонятных мне вещей. Не знаю работал ли вообще ваш код, но мне искренне жаль той копии интерпретатора, который будет выполнять эти команды...:(
 

Форум IT Специалистов