¿Cómo puedo obtener la variable x, que es la longitud de los caracteres de entrada de un campo html, en la función mousePressEvent?
¿Cómo puedo acceder a la variable x, que es la longitud de los caracteres de entrada de un campo de entrada de HTML, dentro de la función mousePressEvent?
Y la variable x es una variable dinámica que aumenta con la longitud de cada carácter.
Quiero controlar las dimensiones de entrada de texto dentro de mousePressEvent.
Pero no puedo acceder a la variable x.
import sys
import os
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets, QtWebChannel
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.x = 50
self.setGeometry(300, 200, 800, 600)
self.channel = QtWebChannel.QWebChannel(self)
self.channel.registerObject("backend", self)
self.show()
@QtCore.pyqtSlot(str)
def pyFun1(self, x):
self.x = x
print(self.x)
def mousePressEvent(self, e):
self.view = QtWebEngineWidgets.QWebEngineView(self)
self.view.resize(self.x, 40)
self.view.page().setWebChannel(self.channel)
self.view.load(QtCore.QUrl().fromLocalFile(
os.path.split(os.path.abspath(__file__))[0]+r'\index.html'))
self.view.move(QPoint(e.x(), e.y()))
self.view.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
davy.ai
Para acceder a la variable x, debes convertirla en una variable de instancia definiéndola en la función init() como self.x. Luego, puedes acceder a ella en la función mousePressEvent() usando self.x. Dado que la variable x es dinámica y cambia con los caracteres de entrada, puedes actualizarla en la función pyFun1() usando self.x = x. Aquí está el código actualizado:
En este código actualizado, la variable x se actualiza en la función pyFun1() en función de la longitud de los caracteres de entrada, y luego se utiliza para cambiar el tamaño del campo de entrada de texto en la función mousePressEvent().