Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: ilkant - 26.10.25 - klo:05.15
-
Chat GPT -tekoäly teki graafisen applikaation, joka käyttää networkingx:n Graph -kaaviota. Ja se teki sen GUI-luokan niin, että siinä oli MainWindow ja Working -luokat erikseen. Tarkoitus on, että tietojen keruu ja laskenta eivät jäädytä sovellusta. Ja kun tuollaista tekee useammassa erässä, niin saa sotkuja aikaan. Niiden setvimiseen menee aikaa.
Chat GPT antoi tällaiset importit:
import sys, time, matplotlib, networkx as nx
matplotlib.use("Qt5Agg")
from PyQt5.QtCore import QObject, QThread, pyqtSignal
from PyQt5.QtWidgets import (
QApplication, QMainWindow, QVBoxLayout, QWidget,
QPushButton, QProgressBar, QLabel
)
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
Kun Kubuntu(ni) käyttää Qt6:sta, niin keksin vaihtaa nuo vitoset kutosiksi. Sitten Qt6Agg antoi virheilmoituksen, että sellaista ei ole. Vaihdoin sen takaisin vitoseksi. Ja kas, se toimi ihan loistavasti PyQt6:llakin. Tarkoittaako tuo puuttuminen sitä, että matplotlibbiin ei ole vielä koodattu Qt6:n mukaisia toimintoja?
Sinänsä aika kätevää, että tekoäly osasi laittaa edistymispalkin ikkunaan verkoston lisäksi. Ja tällä koneella i5-10400F kesti ehkä 3 - 5 sekuntia luoda se verkosto..
Kaikki tuo sen takia, että aiemmin ohjelma ponnautti uuden ikkunan, jonne se piirsi verkoston. Ja nyt tuli virheilmoitus kun se verkosto luotiin toisessa säikeessä kuin millä se näytettiin. QT ei tekoälyn mukaan salli sellaista kun se vaarantaa sovelluksen vakautta.
Että tällaista tekoälyllä ohjelmointia. :)
-
Kun Kubuntu(ni) käyttää Qt6:sta, niin keksin vaihtaa nuo vitoset kutosiksi. Sitten Qt6Agg antoi virheilmoituksen, että sellaista ei ole. Vaihdoin sen takaisin vitoseksi. Ja kas, se toimi ihan loistavasti PyQt6:llakin. Tarkoittaako tuo puuttuminen sitä, että matplotlibbiin ei ole vielä koodattu Qt6:n mukaisia toimintoja?
Katso dokumentaatio:
https://matplotlib.org/stable/gallery/user_interfaces/embedding_in_qt_sgskip.html
https://matplotlib.org/stable/api/backend_qt_api.html
Eli Qt6-yhteensopiva Matplotlib-backend on QtAgg, ja FigureCanvas ja NavigationToolbar importataan näin:
from matplotlib.backends.backend_qtagg import FigureCanvas
from matplotlib.backends.backend_qtagg import \
NavigationToolbar2QT as NavigationToolbar
Rivin matplotlib.use("Qt5Agg") voit poistaa.
-
Eli Qt6-yhteensopiva Matplotlib-backend on QtAgg, ja FigureCanvas ja NavigationToolbar importataan näin:
Rivin matplotlib.use("Qt5Agg") voit poistaa.
Kiitos vinkeistä. Kokeilen noita. Se ohjelma toimii kyllä tuolla aiemmallakin.