Python Forum
[Tkinter] can i had a cefpython3 to a labelframe
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] can i had a cefpython3 to a labelframe
#16
Even thou how do i implement it in my project?


for example this is one of two places were i need a browser window

from tkinter import *
from tkinter import ttk
import tkinter as tk
from formularios import tabmain0
import requests
from bs4 import BeautifulSoup
import webbrowser
import tkinterweb

def home():
    container = ttk.Frame(tabmain0)
    canvas = tk.Canvas(container)
    scrollbar_x = ttk.Scrollbar(container, orient="horizontal", command=canvas.xview)
    scrollbar_y = ttk.Scrollbar(container, orient="vertical", command=canvas.yview)
    scrollable_frame = ttk.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(xscrollcommand=scrollbar_x.set)
    canvas.configure(yscrollcommand=scrollbar_y.set)
    
    stathomelib = LabelFrame(scrollable_frame, text="Library", padx=5, pady=5, highlightbackground="black",
                             highlightthickness=2)
    stathomelib.grid(row=3, column=0, columnspan=2, sticky=NW, pady=2)

    stathomedoc = LabelFrame(scrollable_frame, text="Documentation", padx=5, pady=5, highlightbackground="black",
                             highlightthickness=2)
    stathomedoc.grid(row=3, column=2, columnspan=2,sticky=NW, pady=2)

    stathomeTools = LabelFrame(scrollable_frame, text="External Tools", padx=5, pady=5, highlightbackground="black",
                             highlightthickness=2)
    stathomeTools.grid(row=3, column=4, columnspan=2, sticky=NW, pady=2)

    stathomekib = LabelFrame(scrollable_frame, text="Kibana", padx=5, pady=5, highlightbackground="black",
                             highlightthickness=2)
    stathomekib.grid(row=0, column=0, sticky=NW, pady=2)

    stathomeSDC = LabelFrame(scrollable_frame, text="SDC", padx=5, pady=5, highlightbackground="black",
                             highlightthickness=2)
    stathomeSDC.grid(row=0, column=1, sticky=NW, pady=2)

    stathomeshiny = LabelFrame(scrollable_frame, text="Shiny", padx=5, pady=5, highlightbackground="black",
                               highlightthickness=2)
    stathomeshiny.grid(row=0, column=2, sticky=NW, pady=2)

    stathomeSMART = LabelFrame(scrollable_frame, text="SMART", padx=5, pady=5, highlightbackground="black",
                               highlightthickness=2)
    stathomeSMART.grid(row=0, column=3, sticky=NW, pady=2)

    stathomeVPN = LabelFrame(scrollable_frame, text="Open VPN", padx=5, pady=5, highlightbackground="black",
                               highlightthickness=2)
    stathomeVPN.grid(row=0, column=4, sticky=NW, pady=2)

    home_browser = LabelFrame(scrollable_frame, text="", padx=5, pady=5, highlightbackground="black",
                             highlightthickness=2)
    home_browser.grid(row=0, column=99, rowspan=99, sticky='ne', pady=2)
    valido_browser = tk.IntVar()
    valido_browser.set(False)

    checkbrowser = tk.Checkbutton(home_browser, fg="blue", selectcolor="red", text="Open in Browser", variable=valido_browser)
    checkbrowser.grid(row=0, column=0, columnspan=9, sticky="wn")



    def choose_browser(urlbook):
        if valido_browser.get() == 1:
            webbrowser.open(urlbook)
        else:
            #frm_browser_home.insert(tk.INSERT, urlbook)
            frame = tkinterweb.HtmlFrame(home_browser,messages_enabled = False)
            urlbook=urlbook
            frame.load_website(urlbook)
            frame.grid(row=1, column=0,sticky="wnse", ipadx=330, ipady=120)

    choose_browser("http://www.google.com")


    global varLnkOrder
    varLnkOrder = ""
    varLbook = open("Confs/bookmarks.txt", "r").readlines()
    try:
        for line in varLbook:
            undef = ""
            if ":stathomelib" in line:
                varLnkOrder = stathomelib
                taman=43
                c = 0
                i = 0

            elif ":stathomedoc" in line:
                varLnkOrder = stathomedoc
                taman=43
                c = 0
                i = 0

            elif ":stathomekib" in line:
                varLnkOrder = stathomekib
                taman = 20
                c = 0
                i = 0

            elif ":stathomeSDC" in line:
                varLnkOrder = stathomeSDC
                taman = 20
                c = 0
                i = 0

            elif ":stathomeshiny" in line:
                varLnkOrder = stathomeshiny
                taman = 20
                c = 0
                i = 0

            elif ":stathomeSMART" in line:
                varLnkOrder = stathomeSMART
                taman = 20
                c = 0
                i = 0

            elif ":stathomeVPN" in line:
                try:
                    url = "https://httpd-openvpn.dev/active.php"
                    r = requests.get(url, allow_redirects=False)
                    if r.status_code == 200:
                        soup = BeautifulSoup(r.content, 'lxml')
                        words = soup.find(text=lambda text: text and "UNDEF" in text)
                        if ((words) == "UNDEF"):
                            undef = " (UNDEF Found)"
                    else:
                        undef = " (Down!!!)"
                except Exception as e:
                    undef = " (Down!!!)"

                varLnkOrder = stathomeVPN
                taman = 20
                c = 0
                i = 0

            elif ":stathomeTools" in line:
                varLnkOrder = stathomeTools
                taman = 20
                c = 0
                i = 0



            if len(line) > 1:

                titul, urlbook = line.split('<=>')
                if len(titul) > 1:
                    link1 = Label(varLnkOrder, width=taman, text=titul+str(undef), justify="left", anchor="center", fg="blue", cursor="draft_large")
                    link1.grid(row=i, column=c, sticky="n", pady=2)
                    link1.bind("<Button-1>", lambda e, urlbook=urlbook: choose_browser(urlbook.rstrip()))
                    i += 1
                    line == ""

    except Exception as e:
        from main import log_error
        log_error(e, "Bookmark_Builder")

    container.pack(expand=1, fill="both")
    scrollbar_x.pack(side="bottom", fill="x")
    scrollbar_y.pack(side="right", fill="y")
    canvas.pack(side="bottom", fill="both", expand=True)
here you can see a working example with tkinterweb, unfortunally this browser module dont read most of the websites.


i would be perfect if i could have a function to call, something like, open_browser(frame_name, url)
Reply


Messages In This Thread
can i had a cefpython3 to a labelframe - by razs - Aug-28-2021, 10:47 AM
RE: can i had a cefpython3 to a labelframe - by razs - Sep-02-2021, 07:48 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  tkinter destroy label inside labelFrame Nick_tkinter 3 4,639 Sep-17-2023, 03:38 PM
Last Post: munirashraf9821
  Issue in Tkinter with winfo_class() and LabelFrame ReDefendeur 1 2,786 Oct-05-2020, 05:52 AM
Last Post: Jeff900

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020