Я использую PyQt4.QMainWindow в качестве моего интерфейса приложения, и я хочу получить координаты x и y мыши внутри QWidget и непрерывно их устанавливать в 2 текстовых буферах в MainWindow.Использование PyQt4.QtGui.QMouseEvent в QWidget
Документация для QWidget - here.
и документация для QMouseEvent: here.
Вот код
from PyQt4 import QtGui
from PyQt4.QtGui import QApplication
import sys
class Ui_MainWindow(object):
def setupUI(self, MainWindow):
self.textBrowser_1 = QtGui.QTextBrowser(self.tab)
self.textBrowser_2 = QtGui.QTextBrowser(self.tab)
self.widget_1 = QtGui.QWidget(self.tab)
self.widget_1.setMouseTracking(True)
class MyMainScreen(QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow() # This is from a python export from QtDesigner
# There is a QWidget inside that is self.ui.widget_1
# and 2 textBrowsers, textBrowser_1 and textBrowser_2
# I want to populate these 2 textBrowsers with the current x,y
# coordinates.
if __name__ == "__main__":
app = QApplication(sys.argv)
mainscreen = MyMainScreen()
mainscreen.show()
app.exec_()
попробуйте мое решение – eyllanesc
Вы, кажется, мало знаете о Qt. MouseMoveEvent - это обратный вызов события, который вызывается из структуры всякий раз, когда мышь перемещается внутри виджета. Вероятно, это то, что вы хотите иметь, но вместо того, чтобы называть его (не имеет смысла), вы, вероятно, захотите переопределить его и реализовать свои собственные действия там. – Trilarion
Возможный дубликат [Использование PyQt4, как вы устанавливаете mouseMoveEvent только для работы внутри QWidget в QMainWindow, но не в MainWindow] (http://stackoverflow.com/questions/40878157/using-pyqt4-how-do -you-set-a-mousemoveevent-to-only-work-inside-of-a-qwidget-in) –