Module CoffeeChat.coffeechat.Client.screen

Configuração da tela da sala de bate-papo

Expand source code
"""Configuração da tela da sala de bate-papo"""
from tkinter import *


def window(root):
        """
        Define padrão da janela do chat
        
        Attributes:
                root (tk.Tk()): Objeto tkinter.
        """
        root.title("CoffeeChat")
        width = 500
        heigth = 340
        x = (root.winfo_screenwidth() // 2) - (width // 2)
        y = (root.winfo_screenheight() // 2) - (heigth // 2)
        root.geometry('{}x{}+{}+{}'.format(width, heigth, x, y))


def set_user(username):
        """
        Define nome do usuário.

        Attributes:
                username (str): Nome do usuário.
        """
        user = username
        Label(frame_side, text=username, wraplength=20, anchor="w",
              justify=LEFT).pack()


def set_message(event):
        """
        
        """
        message = entry.get()

        if message.isspace():
                Label(scrollable_frame,
                      text=user,
                      wraplength=370,
                      anchor="w",
                      justify=LEFT,
                      width='50').pack()
                Label(scrollable_frame,
                      text=message,
                      wraplength=370,
                      anchor="w",
                      justify=LEFT,
                      width='50').pack()
                Label(
                    scrollable_frame,
                    text=
                    '_______________________________________________________________________',
                    wraplength=370,
                    anchor="w",
                    justify=LEFT,
                    width='50').pack()

                return message

        return " "


def clear_message(event):
        """Apaga mensagem do input ao clicar nele."""
        entry.delete(0, END)


def start_screen():
        """Configuração e inicialização da tela de bate-papo."""
        global scrollable_frame
        global entry
        global user
        global frame_side

        win = Tk()
        window(win)
        win.resizable(height=False, width=False)

        # FRAME
        frame = Frame(win)
        frame_side = Frame(frame, bg='white')

        # TITULO - PRINCIPAL
        label = Label(win,
                      text="Redes - CoffeeChat",
                      font="Helvetica 16 bold italic")

        # TITULO - LADO
        label_side = Label(frame_side,
                           text="Usuários",
                           font="Helvetica 10 bold italic",
                           justify='left')

        # CANVAS SCROLL
        canvas = Canvas(frame)
        scrollbar = Scrollbar(frame, orient="vertical", command=canvas.yview)
        scrollable_frame = Frame(canvas)
        scrollable_frame.bind(
            "<Configure>",
            lambda e: canvas.configure(scrollregion=canvas.bbox("all")))

        canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
        canvas.configure(yscrollcommand=scrollbar.set)

        # MENSAGEM
        entry = Entry(win,
                      width='85',
                      borderwidth=18,
                      bg='#ccc',
                      relief=FLAT,
                      font='Times 10')

        # PACK - BINDA AS TELAS
        label.pack()
        frame.pack()
        frame_side.pack(fill='both', side=RIGHT)
        label_side.pack()

        canvas.pack(side="left", fill="both", expand=True)
        scrollbar.pack(side="right", fill="both")
        entry.pack()

        # EXTRA - BINDING ETC ...
        entry.insert(0, "Digite algo e aperte enter ...")
        entry.bind('<Return>', set_message)
        entry.bind('<Button-1>', clear_message)

        # STARTA A TELA PRINCIPAL
        win.mainloop()

Functions

def clear_message(event)

Apaga mensagem do input ao clicar nele.

Expand source code
def clear_message(event):
        """Apaga mensagem do input ao clicar nele."""
        entry.delete(0, END)
def set_message(event)
Expand source code
def set_message(event):
        """
        
        """
        message = entry.get()

        if message.isspace():
                Label(scrollable_frame,
                      text=user,
                      wraplength=370,
                      anchor="w",
                      justify=LEFT,
                      width='50').pack()
                Label(scrollable_frame,
                      text=message,
                      wraplength=370,
                      anchor="w",
                      justify=LEFT,
                      width='50').pack()
                Label(
                    scrollable_frame,
                    text=
                    '_______________________________________________________________________',
                    wraplength=370,
                    anchor="w",
                    justify=LEFT,
                    width='50').pack()

                return message

        return " "
def set_user(username)

Define nome do usuário.

Attributes

username : str
Nome do usuário.
Expand source code
def set_user(username):
        """
        Define nome do usuário.

        Attributes:
                username (str): Nome do usuário.
        """
        user = username
        Label(frame_side, text=username, wraplength=20, anchor="w",
              justify=LEFT).pack()
def start_screen()

Configuração e inicialização da tela de bate-papo.

Expand source code
def start_screen():
        """Configuração e inicialização da tela de bate-papo."""
        global scrollable_frame
        global entry
        global user
        global frame_side

        win = Tk()
        window(win)
        win.resizable(height=False, width=False)

        # FRAME
        frame = Frame(win)
        frame_side = Frame(frame, bg='white')

        # TITULO - PRINCIPAL
        label = Label(win,
                      text="Redes - CoffeeChat",
                      font="Helvetica 16 bold italic")

        # TITULO - LADO
        label_side = Label(frame_side,
                           text="Usuários",
                           font="Helvetica 10 bold italic",
                           justify='left')

        # CANVAS SCROLL
        canvas = Canvas(frame)
        scrollbar = Scrollbar(frame, orient="vertical", command=canvas.yview)
        scrollable_frame = Frame(canvas)
        scrollable_frame.bind(
            "<Configure>",
            lambda e: canvas.configure(scrollregion=canvas.bbox("all")))

        canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
        canvas.configure(yscrollcommand=scrollbar.set)

        # MENSAGEM
        entry = Entry(win,
                      width='85',
                      borderwidth=18,
                      bg='#ccc',
                      relief=FLAT,
                      font='Times 10')

        # PACK - BINDA AS TELAS
        label.pack()
        frame.pack()
        frame_side.pack(fill='both', side=RIGHT)
        label_side.pack()

        canvas.pack(side="left", fill="both", expand=True)
        scrollbar.pack(side="right", fill="both")
        entry.pack()

        # EXTRA - BINDING ETC ...
        entry.insert(0, "Digite algo e aperte enter ...")
        entry.bind('<Return>', set_message)
        entry.bind('<Button-1>', clear_message)

        # STARTA A TELA PRINCIPAL
        win.mainloop()
def window(root)

Define padrão da janela do chat

Attributes

root (tk.Tk()): Objeto tkinter.

Expand source code
def window(root):
        """
        Define padrão da janela do chat
        
        Attributes:
                root (tk.Tk()): Objeto tkinter.
        """
        root.title("CoffeeChat")
        width = 500
        heigth = 340
        x = (root.winfo_screenwidth() // 2) - (width // 2)
        y = (root.winfo_screenheight() // 2) - (heigth // 2)
        root.geometry('{}x{}+{}+{}'.format(width, heigth, x, y))