Προς το περιεχόμενο
  • 0

Pyqt5 "μοίρασμα" πληροφορίας


thiva7

Ερώτηση

Καλησπέρα, 

Προσπαθώ να χαζό μάθω λίγο python με pyqt5. 

Έχω φτιάξει το γραφικό περιβάλλον κτλπ και έκανα εξαγωγή σε main.py

Τωρα από το maimApp.py δίνω τις λειτουργίες σε Button line κτλπ. 

Όλα κομπλέ μέχρι εδώ... Αλλά για να μπορώ να το έχω ακόμα πιο "μαζεμένο" θέλω να μοιράσω τις λειτουργίες σε πολλαπλά αρχεία. 

Πως μπορώ λοιπόν πχ από το αρχείο file1.py να πάρω τα στοιχεία που καταχωρεί ο χρήστης στο παράθυρο από το maimApp.py να γίνεται η επεξεργασία των πληροφοριών και να επιστρέψει τα στοιχεία στο mainApp? 

 

Ευχαριστώ 

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

4 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 0

Θεωρώ πως μπορείς να πάρεις την πληροφορία από την φόρμα/φόρμες που έχεις στο 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 καθώς υπάρχουν κι άλλα περίεργα.

 

  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Σας ευχαριστω και τους δυο για τις απαντησεις

τελικα το εκανα λιγο μπακαλιστικα μαλλον ,

για καθε πληροφορια που θελω να ειναι σε αλλη σελιδα py εφτιαξα functions

def κατι(kati , kati2... ) :

      oti thelo na kanei

 

και με import μεσα απο την βασικη σελιδα καλεσα το def κατι.

λογικα θα μπορουσε να γινει και με πιο απλο τροπο :D ,  αλλα αυτο δουλεψε

Στις 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 να περασω απλα λειτουργιες για πιο μαζεμενο κωδικα

 

Ευχαριστω

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Στις 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 αυτό που έκανες και είναι πολύ καλή πρακτική (αν οργανωθεί σωστά).

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.