ДЧ
Дмитрий ЧерноволSept. 10, 2021, 8:17 p.m.
Вызов функции Python с Qml
Всем здравствуйте.
Незамысловатая задача появилась у меня - вызвать функцию Python с Qml.
Смотрел уроки на этом сайте, но что-то я не понимаю. Сверял код Qt C++, вроде как всё также, но не работает и прошу помощи у вас
Вот код:
main.py
# This Python file uses the following encoding: utf-8 from PySide2.QtGui import QGuiApplication from PySide2.QtQml import QQmlApplicationEngine from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot from bs4 import BeautifulSoup import sys import os import requests import time s = requests.Session() class Calculator(QObject): def __init__(self): QObject.__init__(self) takeFunc = pyqtSignal() @pyqtSlot() def result(self, text): while True: t=s.get("http://v.meni.mobi") soup = BeautifulSoup(t.text, 'html.parser') self.text=soup.find("div", class_="footer_share").find("a").get("href") print(text) time.sleep(1) if __name__ == "__main__": app = QGuiApplication(sys.argv) engine = QQmlApplicationEngine() calculator = Calculator() engine.rootContext().setContextProperty("calculator", calculator) engine.load(os.path.join(os.path.dirname(__file__), "main.qml")) if not engine.rootObjects(): sys.exit(-1) sys.exit(app.exec_())
main.qml
import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Extras 1.4 import QtQuick.Controls 2.3 Window { width: 640 height: 480 visible: true title: qsTr("Hello World") Connections { target: calculator // Обработчик сигнала сложения onResult: { } } Button { id: button x: 207 y: 167 text: qsTr("Button") onClicked: calculator.result } }
При компиляции такие ошибки ползут:
Буду очень благодарен советам или помощи

We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
ДЛ
- Данила Логвиненко
- April 1, 2023, 8:48 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:60points,
- Rating points-1
СЦ
- Святослав Цыганков
- March 20, 2023, 10:02 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
AT
- Alex Troickiy
- March 19, 2023, 10:46 a.m.
C++ - Test 001. The first program and data types
- Result:73points,
- Rating points1
Last comments
Qt/C++ - Lesson 021. The drawing mouse in Qt Евгений, здравствуйте! Только начал изучение Qt и возник вопрос по 21ому уроку. После написания кода, выдаёт следующие ошибки В чём может быть проблема?
АН
Qt/C++ - Lesson 042. PopUp notification in the Gnome style using Qt Добрый день, взял за основу ваш PopUp notification , и немного доработал его под свои нужды. Добавил в отдельном eventloop'e всплывающую очередь уведомлений с анимацией и таймеро…
Алексей НиколаевMarch 26, 2023, 9:10 a.m.
АН
Qt/C++ - Lesson 042. PopUp notification in the Gnome style using Qt Включите прозрачность в композит менеджере fly-admin-theme : fly-admin-theme ->Эффекты и всё заработает.
Алексей НиколаевMarch 26, 2023, 9:04 a.m.

NSProjectMarch 24, 2023, 2:35 p.m.

Evgenii LegotckoiMarch 24, 2023, 10:09 a.m.
Now discuss on the forum

BlinCTApril 1, 2023, 5:16 a.m.

NSProjectMarch 31, 2023, 2:55 a.m.
Как подсчитать количество по условию? Да! Вот так работает! Огромное Вам спасибо! ........

Evgenii LegotckoiMarch 29, 2023, 4:11 a.m.
ВА
Как добавить виртуальную клавиатура с Т9 в своей проект на QML. Добрый день. Прошу помочь, пишу небольше приложение в Qt. Добвил в свой проект виртуальную клавиатуру от Qt. Но как добавить в него возможность изменения Т9 никак не могу понять.
Виталий АнисимовJan. 29, 2023, 3:17 p.m.
Чтобы onResult в QML подключилось к чему-то в Python, нужно чтобы result было сигналом, а у вас это слот.
В качестве сигнала определено takeFunc и в данном случае в QML должно работать так