Forum >> Programmazione Python >> GUI >> Finestra Gui senza il titolo

Pagina: 1

Buonasera, allora io in questo progetto ho una finestra GUI principale (che sara' sempre attiva) nella quale sara' presente un menù a discesa.
Alla riga sotto il menu a discesa vorrei posizionare delle finestre che per esigenze estetiche non dovrebbero avere ne il titolo ne i controlli (riduci,apri,chiudi) per far si che sembri sempre che sia la pagina principale (anche se in realtà non lo sarà).




La mia richiesta di aiuto intende : come tolgo il titolo delle finestra e i rispettivi controlli.




Grazie

Alberto
------
Alberto
Ciao caro, così chiedi uno sforzo magico ai potenziali aiutanti.

Devi indicare che libreria stai utilizzando, quale versione del linguaggio e tutte le informazioni a corredo della domanda, non ultimo il codice che stai cercando di creare.

Cya

... e soprattutto... ma davvero in questo momento tu riesci a posizionare una *finestra* dentro un'altra finestra?


(cioè, sì, esiste MDI ma non credo che sia questo il caso...)

Scusate, ma scordo sempre che per un buon suggerimento ci vuole un domanda completa di tutte le informazioni.
Allora utilizzi tkinter e python 3.8 su raspberry (quindi Linux).




Comunque io “vorrei” posizionare la finestra li, vi scrivo apposta perché no lo so fare, come no so fare in modo che i tasti riduci/ingrandisci/chiudi quando premuti vengano ignorati oppure proprio non visualizzati.




Grazie




Alberto
------
Alberto
ah, mi pareva.


ok, la risposta è: non lo puoi fare. Una finestra è un contenitore per altri widget, non può essere a sua volta contenuta in un'altra finestra come un widget qualsiasi.


Del resto, potresti indicare una qualsiasi interfaccia grafica che hai incontrato, che è fatta in questo modo?

Tenendo conto che le finestre senza i pulsanti di "servizio" sono solo perche' vorrei avere un finestra "fissa" nella quale ho un menu a discesa; pero' io avrei bisogno di avere delle schermate diverse in quella finestra.




Se io usassi , e qui non voglio sparare delle cavolate, dei frame potrei fare quello che voglio ?

In pratica devo avere la finestra base e la possibilita di avere 4/5 gui diverse (che seleziono dal menu a discesa) all'interno della mia finestra.




Spedo di essere riuscito a spiegarmi.




Grazie




Alberto




------
Alberto
Non so che dire, la prima frase non è Italiano quindi non capisco che cosa significa.


Per il resto, ehm, sì... se ho capito quello che stai cercando di fare (incrocio le dita) suppongo che tu potresti avere una finestra principale, supponiamo con un menu, e usare quel menu per aprire delle finestre secondarie a richiesta... direi che questo è quello che si fa in genere.


Un'alternativa comune è usare una "tabbed window" di qualche tipo, in qualunque modo sia chiamata nel framework che stai usando... Notebook probabilmente. A questo punto, dentro ciascun "tab" della finestra metti una view differente.


In generale, quando si lavora con le GUI, il consiglio è sempre di non reinventare ogni volta la ruota, mettendosi a pensare in astratto "come posso risolvere questo problema". Invece uno dovrebbe cercare di seguire dei pattern già noti, chidendosi "come fanno le GUI che vedo in giro tutti i giorni a risolvere questo problema".


Le GUI sono in giro dal 1968. Cinquantadue anni dopo, è molto improbabile che si possa avere un'esigenza che non è già stata affrontata e risolta da qualcuno prima.

Buonasera, il presente messaggio si vorrebbe allacciare al suggerimento datomi da RicPol per poter gestire una Gui con dei Tab (Notebook) invece di un numero x di finestre.
Prendendo qua e la qualche spunto e mettendolo insieme con quello che mi servirebbe ho cominciato a produrre il codice a seguire (che chiaramente è da principiante).




from tkinter import *
import tkinter as tk
from tkinter import ttk

class NoteBookApp:
    def __init__(self, master):
        self.master = master
        self.notebk = ttk.Notebook(self.master)
        self.notebk.pack()
        self.frame1 = ttk.Frame(self.notebk, width = 400, height = 400, relief = tk.SUNKEN)
        self.frame2 = ttk.Frame(self.notebk, width = 400, height = 400, relief = tk.SUNKEN)
        self.frame3 = ttk.Frame(self.notebk, width = 400, height = 400, relief = tk.SUNKEN)
        self.frame4 = ttk.Frame(self.notebk, width = 400, height = 400, relief = tk.SUNKEN)
        self.frame5 = ttk.Frame(self.notebk, width = 400, height = 400, relief = tk.SUNKEN)

        self.notebk.add(self.frame1, text = 'Dissolvenze') ######
        BUTTON_evento_1 = Button(self.frame1 ,text ="Alba", font="Calibri 12 normal",bd=3, activeforeground="white"\
                    ,bg="#aabac3",activebackground ="#aabac3",width = 9)
        BUTTON_evento_1.place (x = 50 , y = 60)

        self.notebk.add(self.frame2, text = 'Rs-485_1') #####
        BUTTON_evento_2 = Button(self.frame2 ,text ="Alba", font="Calibri 12 normal",bd=3, activeforeground="white"\
                    ,bg="#aabac3",activebackground ="#aabac3",width = 9)
        BUTTON_evento_2.place (x = 50 , y = 60)
        
        self.notebk.add(self.frame3, text = 'Rs-485_2') #####
        self.notebk.add(self.frame4, text = 'Gpio') #####
        self.notebk.add(self.frame5, text = 'Test Schede') #####

        

def launchNoteBookApp():
    root = tk.Tk()
    
    barra_menu = Menu(root)
    # Crea Menu File
    menu_file = Menu(barra_menu , tearoff = 0)
    barra_menu.add_cascade(label = "File" , menu = menu_file)
    menu_file.add_command(label = "Nuovo")
    menu_file.add_command(label = "Modifica")
    menu_file.add_command(label = "Esci")
    root.config(menu = barra_menu)

    # Crea Menu Scelta Scheda
    menu_configura = Menu(barra_menu , tearoff = 0)
    barra_menu.add_cascade(label = "Scheda" , menu = menu_configura)
    menu_configura.add_command(label = "Scheda 1")
    menu_configura.add_command(label = "Scheda 2")
    menu_configura.add_command(label = "Scheda 3")
    menu_configura.add_command(label = "Scheda Test")

    # Crea Menu Configura
    menu_configura = Menu(barra_menu , tearoff = 0)
    barra_menu.add_cascade(label = "Configura" , menu = menu_configura)
    menu_configura.add_command(label = "Settaggi")
    menu_configura.add_command(label = "Boh")

    # Crea Menu About
    menu_about = Menu(barra_menu,tearoff=0)
    barra_menu.add_cascade(label = "About" , menu = menu_about)
    menu_about.add_command(label = "About")

    NoteBookApp(root)
    tk.mainloop()
    

if __name__=='__main__':
    launchNoteBookApp()
    

Di seguito alle 5 tab create dovrei scrivere il codice che però per motivi legati alle molte informazioni presenti in ogni tab sara' molto lungo.

La mi richiesta di supporto è nel come posso fare a scomporlo in 5 parti piu' corte, utilizzando delle funzioni o delle classi.

Io ho fatto un po' di prove ma non sono arrivato a nulla.

Sareste cosi gentili da darmi una mano ?




Grazie




--- Ultima modifica di trescon in data 2020-04-20 17:57:19 ---
------
Alberto


Pagina: 1



Esegui il login per scrivere una risposta.