Мы в Telegram
Добавить новость
Новости сегодня

Новости от TheMoneytizer

Написать на Python Qt5 модуля определения активного виджета в окне

Мне для экранной клавиатуры нужно определить активный виджет в окне, чтобы выводить туда переменную с набираемым текстом на экранной клавиатуре. Ниже приведу пример принципа который подходит для реализации данной задачи и мой код который не получилось полностью реализовать, он только отрисовывает виджеты, дальше не продвинулся. Надо либо предлагаемый вариант довести до рабочего состояния либо новый написать, такой же по размерам и содержанию.Предлагайте цену за которую готовы сделать, срок как можно быстрее.

Пример принципа:

from PyQt5 import QtWidgets


class MyLineEdit(QtWidgets.QPlainTextEdit):
def __init__(self, id):
QtWidgets.QPlainTextEdit.__init__(self)
self.id = id

def focusInEvent(self, e):
print("Получен фокус полем", self.id)
QtWidgets.QPlainTextEdit.focusInEvent(self, e)

def focusOutEvent(self, e):
print("Потерян фокус полем", self.id)
QtWidgets.QPlainTextEdit.focusOutEvent(self, e)


class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.resize(300, 100)

self.line1 = MyLineEdit(1)
self.line2 = MyLineEdit(2)
self.line3 = MyLineEdit(3)
self.vbox = QtWidgets.QVBoxLayout()

self.vbox.addWidget(self.line1)
self.vbox.addWidget(self.line2)
self.vbox.addWidget(self.line3)
self.setLayout(self.vbox)


if __name__ == "__main__":
import sys

app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
Мой пробный код:
from PyQt5 import QtWidgets
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QPushButton
from PyQt5.QtWidgets import QVBoxLayout, QLabel
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QTimer, QTime, Qt, QDateTime
from PyQt5 import QtCore, QtGui, QtWidgets

class MyQPlainTextEdit(QtWidgets.QPlainTextEdit):
def __init__(self, id):
QtWidgets.QPlainTextEdit.__init__(self)
self.id = id
def focusInEvent(self, e):
print("Получен фокус полем", self.id)
self.setStyleSheet("background-color: yellow; color: red;")
QtWidgets.QPlainTextEdit.focusInEvent(self, e)
def focusOutEvent(self, e):
print("Потерян фокус полем", self.id)
self.setStyleSheet("background-color: white; color: black;")
QtWidgets.QPlainTextEdit.focusOutEvent(self, e)


class MyWindow(QtWidgets.QWidget): # object,
def __init__(self):
super().__init__()
self.setupUi(self)

def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(801, 208)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(590, 150, 191, 41))
font = QtGui.QFont()
font.setPointSize(12)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("QPushButton {\n"
" \n"
" background-color: rgb(73, 71, 71);\n"
" color: rgb(255, 255, 255);\n"
" \n"
"}\n"
"\n"
"QPushButton:pressed {\n"
" background-color: rgb(118, 118, 118);\n"
"}")
self.pushButton.setObjectName("pushButton")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(10, 130, 51, 17))
self.label_3.setObjectName("label_3")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(10, 40, 151, 21))
self.label.setObjectName("label")
self.label_7 = QtWidgets.QLabel(Form)
self.label_7.setGeometry(QtCore.QRect(310, 130, 67, 17))
self.label_7.setObjectName("label_7")
self.label_9 = QtWidgets.QLabel(Form)
self.label_9.setGeometry(QtCore.QRect(580, 39, 201, 21))
self.label_9.setObjectName("label_9")
self.label_5 = QtWidgets.QLabel(Form)
self.label_5.setGeometry(QtCore.QRect(310, 40, 121, 17))
self.label_5.setObjectName("label_5")
self.label_11 = QtWidgets.QLabel(Form)
self.label_11.setGeometry(QtCore.QRect(-4, -1, 811, 31))
self.label_11.setLayoutDirection(QtCore.Qt.RightToLeft)
self.label_11.setStyleSheet("background-color: rgb(73, 71, 71);\n"
" color: rgb(255, 255, 255);")
self.label_11.setAlignment(QtCore.Qt.AlignCenter)
self.label_11.setObjectName("label_11")

self.plainTextEdit = MyQPlainTextEdit(Form)
# self.plainTextEdit = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit.setGeometry(QtCore.QRect(10, 60, 291, 70))
self.plainTextEdit.setStyleSheet("background-color: rgb(243, 243, 243);")
self.plainTextEdit.setPlainText("")
self.plainTextEdit.setObjectName("plainTextEdit")
self.plainTextEdit_2 = MyQPlainTextEdit(Form)
# self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit_2.setGeometry(QtCore.QRect(10, 150, 291, 51))
self.plainTextEdit_2.setStyleSheet("background-color: rgb(243, 243, 243);")
self.plainTextEdit_2.setObjectName("plainTextEdit_2")
self.plainTextEdit_3 = MyQPlainTextEdit(Form)
# self.plainTextEdit_3 = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit_3.setGeometry(QtCore.QRect(310, 60, 261, 70))
self.plainTextEdit_3.setStyleSheet("background-color: rgb(243, 243, 243);")
self.plainTextEdit_3.setObjectName("plainTextEdit_3")
self.plainTextEdit_4 = MyQPlainTextEdit(Form)
# self.plainTextEdit_4 = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit_4.setGeometry(QtCore.QRect(310, 150, 261, 51))
self.plainTextEdit_4.setStyleSheet("background-color: rgb(243, 243, 243);")
self.plainTextEdit_4.setObjectName("plainTextEdit_4")
self.plainTextEdit_5 = MyQPlainTextEdit(Form)
# self.plainTextEdit_5 = QtWidgets.QPlainTextEdit(Form)
self.plainTextEdit_5.setGeometry(QtCore.QRect(580, 60, 211, 71))
self.plainTextEdit_5.setStyleSheet("background-color: rgb(243, 243, 243);")
self.plainTextEdit_5.setObjectName("plainTextEdit_5")

self.plainTextEdit.setStyleSheet('background-color: #f0f0f0; border: none')
self.plainTextEdit_2.setStyleSheet('background-color: #f0f0f0; border: none')
self.plainTextEdit_3.setStyleSheet('background-color: #f0f0f0; border: none')
self.plainTextEdit_4.setStyleSheet('background-color: #f0f0f0; border: none')
self.plainTextEdit_5.setStyleSheet('background-color: #f0f0f0; border: none')

self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "СОХРАНИТЬ"))
self.label_3.setText(_translate("Form", "ФИО:"))
self.label.setText(_translate("Form", "Наименование ЛПУ:"))
self.label_7.setText(_translate("Form", "E-mail:"))
self.label_9.setText(_translate("Form", "Создайте пароль доступа:"))
self.label_5.setText(_translate("Form", "Специализация:"))
self.label_11.setText(_translate("Form", "РЕГИСТРАЦИЯ НОВОГО ОПЕРАТОРА"))




if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())

Читайте на 123ru.net


Новости 24/7 DirectAdvert - доход для вашего сайта



Частные объявления в Вашем городе, в Вашем регионе и в России



Smi24.net — ежеминутные новости с ежедневным архивом. Только у нас — все главные новости дня без политической цензуры. "123 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Smi24.net — облегчённая версия старейшего обозревателя новостей 123ru.net. Мы не навязываем Вам своё видение, мы даём Вам срез событий дня без цензуры и без купюр. Новости, какие они есть —онлайн с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии. Smi24.net — живые новости в живом эфире! Быстрый поиск от Smi24.net — это не только возможность первым узнать, но и преимущество сообщить срочные новости мгновенно на любом языке мира и быть услышанным тут же. В любую минуту Вы можете добавить свою новость - здесь.




Новости от наших партнёров в Вашем городе

Ria.city

Стало известно об еще одном случае отравления детей на сборах под Москвой

Против сотрудника НИИ ФСИН возбудили уголовное дело

Посол Белоруссии рассказал подробности о тарифах в роуминге с Россией

У супруга Елены Блиновской не хватило средств на процедуру банкротства

Музыкальные новости

«В девять лет я уже был очень любвеобильным». Актер Михаил Богдасаров вспомнил детство в шоу «Вкусно с Анфисой Чеховой» на ТВ-3  

Яндекс, А.С. Пушкин, Святой Ленин ведут следствие. Настоящая сенсация! 225 лет А.С. Пушкину.

Рекордная жара до +50 в России: Вильфанд предупреждает об Эль-Ниньо, которая принесет адскую жару

Помощь российских армян СВО. Поддержка тыла важна для передовой

Новости России

Стало известно об еще одном случае отравления детей на сборах под Москвой

Более 750 мероприятий по борьбе с грызунами и насекомыми провели в Подмосковье

У супруга Елены Блиновской не хватило средств на процедуру банкротства

Минздрав: За месяц зарплаты врачей в среднем выросли на 11,4 тысячи рублей

Экология в России и мире

Производители кроссовок New Balance и Under Armour подали около 1000 исков к российским продавцам

Приглашенные солистки выступят в опере «Руслан и Людмила»

Новый тип туров в Турцию начали раскупать российские туристы: вместо отеля им предложено нестандартное размещение

Какие украшения будут в моде летом 2024 – подборка стилиста «585*ЗОЛОТОЙ»

Спорт в России и мире

Испанец Алькарас выиграл Открытый чемпионат Франции по теннису

Свёнтек сравнялась с Шараповой по победам на турнирах Большого шлема

Итальянский теннисист Синнер стал лучшей ракеткой мира в рейтинге ATP

Мирра Андреева может стать новой Марией Шараповой

Moscow.media

Пустынная долина Кодара...

Вечерело...

Армянские ковры Арцаха (Карабаха) с уникальным орнаментом представлены как «генетический код» Азербайджана - сайт monumentwatch

В Карелии арестовали учителя-педофила







Топ новостей на этот час

Rss.plus





СМИ24.net — правдивые новости, непрерывно 24/7 на русском языке с ежеминутным обновлением *