thiva7 Δημοσ. 3 Απριλίου 2021 Δημοσ. 3 Απριλίου 2021 Καλησπέρα, Προσπαθώ να χαζό μάθω λίγο python με pyqt5. Έχω φτιάξει το γραφικό περιβάλλον κτλπ και έκανα εξαγωγή σε main.py Τωρα από το maimApp.py δίνω τις λειτουργίες σε Button line κτλπ. Όλα κομπλέ μέχρι εδώ... Αλλά για να μπορώ να το έχω ακόμα πιο "μαζεμένο" θέλω να μοιράσω τις λειτουργίες σε πολλαπλά αρχεία. Πως μπορώ λοιπόν πχ από το αρχείο file1.py να πάρω τα στοιχεία που καταχωρεί ο χρήστης στο παράθυρο από το maimApp.py να γίνεται η επεξεργασία των πληροφοριών και να επιστρέψει τα στοιχεία στο mainApp? Ευχαριστώ
mad-proffessor Δημοσ. 4 Απριλίου 2021 Δημοσ. 4 Απριλίου 2021 Θα πρέπει να δεις τη θεωρία πίσω από το mvc design pattern. 1
Ponous Δημοσ. 5 Απριλίου 2021 Δημοσ. 5 Απριλίου 2021 Θεωρώ πως μπορείς να πάρεις την πληροφορία από την φόρμα/φόρμες που έχεις στο mainApp.py. Αν δεν, θα πρέπει για κάθε στοιχείο της φόρμας που χρησιμοποιείς, να το ψάξεις στο documentation (μπορείς να δεις και το documentation της Qt. Μπορεί να είναι σε PySide2 αλλά πολύ λίγες διαφορές έχει από την PyQt5) Για να διαμοιράσεις την πληροφορία όμως αυτό δεν είναι θέμα της PyQt5. Έχει να κάνει με python modules: Δες εδώ Τώρα ένα πρόχειρο παράδειγμα που μπορεί να σου χρειαστεί στο μέλλον είναι το εξής: Module name: utils/dialogs.py from PyQt5.QtWidgets import QMessageBox import config.settings as settings def show_msg(msg): """ Shows a message in a window, in case that an error occurred. """ msg_box = QMessageBox() msg_box.setWindowTitle(settings.WINDOW_TITLE) msg_box.setText(msg) x = msg_box.exec_() Main application import utils.dialogs as dialogs # Κάλεσε το ως dialogs.show_msg('Hello World') Πρώτα κάνεις import φάκελο, ονομασία αρχείου και μετά πως θα το χρησιμοποιείς στο πρόγραμμα σου. Αλλά καλύτερα ρίξε μια ματιά στον οδηγό της Python καθώς υπάρχουν κι άλλα περίεργα. 1
thiva7 Δημοσ. 13 Απριλίου 2021 Μέλος Δημοσ. 13 Απριλίου 2021 Σας ευχαριστω και τους δυο για τις απαντησεις τελικα το εκανα λιγο μπακαλιστικα μαλλον , για καθε πληροφορια που θελω να ειναι σε αλλη σελιδα py εφτιαξα functions def κατι(kati , kati2... ) : oti thelo na kanei και με import μεσα απο την βασικη σελιδα καλεσα το def κατι. λογικα θα μπορουσε να γινει και με πιο απλο τροπο , αλλα αυτο δουλεψε Στις 5/4/2021 στις 11:29 ΜΜ, Ponous είπε import config.settings as settings config ειναι φακελος και settings ειναι το ονομα αρχειου? Στις 5/4/2021 στις 11:29 ΜΜ, Ponous είπε from PyQt5.QtWidgets import QMessageBox import config.settings as settings def show_msg(msg): """ Shows a message in a window, in case that an error occurred. """ msg_box = QMessageBox() msg_box.setWindowTitle(settings.WINDOW_TITLE) msg_box.setText(msg) x = msg_box.exec_() Main application import utils.dialogs as dialogs # Κάλεσε το ως dialogs.show_msg('Hello World') Πρώτα κάνεις import φάκελο, ονομασία αρχείου και μετά πως θα το χρησιμοποιείς στο πρόγραμμα σου. Αλλά καλύτερα ρίξε μια ματιά στον οδηγό της Python καθώς υπάρχουν κι άλλα περίεργα. αυτο δεν ειναι για να μεταφερεις πληροφορια σε αλλο παραθυρο? εγω δεν ηθελα νεο παραθυρο αλλα σε αλλη σελιδα py να περασω απλα λειτουργιες για πιο μαζεμενο κωδικα Ευχαριστω
Ponous Δημοσ. 15 Απριλίου 2021 Δημοσ. 15 Απριλίου 2021 Στις 13/4/2021 στις 4:15 ΜΜ, thiva7 είπε config ειναι φακελος και settings ειναι το ονομα αρχειου? Ναι config/settings.py Στις 13/4/2021 στις 4:15 ΜΜ, thiva7 είπε αυτο δεν ειναι για να μεταφερεις πληροφορια σε αλλο παραθυρο? Αυτό ήταν ένα παράδειγμα για να σου δείξω πως μπορείς να μεταφέρεις συναρτήσεις του τύπου def kati(sth, sth2) σε άλλο αρχείο .py. Στο παράδειγμα μου σου έχω μια συνάρτηση η οποία δείχνει στην οθόνη ένα μήνυμα. Αλλά δεν χρειάζεται να αντιγράψεις την συνάρτηση μου απλά να δεις πως μπορεί να μπει μια συνάρτηση σε άλλο αρχείο και να καλεστεί από την βασική σου σελίδα Στις 13/4/2021 στις 4:15 ΜΜ, thiva7 είπε για καθε πληροφορια που θελω να ειναι σε αλλη σελιδα py εφτιαξα functions def κατι(kati , kati2... ) : oti thelo na kanei και με import μεσα απο την βασικη σελιδα καλεσα το def κατι. Αυτό ήταν που ήθελα να κάνεις και αυτό έκανα και στο παράδειγμα που σου έστειλα. Ονομάζεται modules αυτό που έκανες και είναι πολύ καλή πρακτική (αν οργανωθεί σωστά).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα