Aug-28-2021, 10:47 AM
(This post was last modified: Aug-28-2021, 08:58 PM by Yoriz.
Edit Reason: Added prefix
)
Im having some dificulties setting the browser window in a LabelFrame on the right, can someone help?
from tkinter import * from tkinter import ttk from tkinter.scrolledtext import ScrolledText import tkinter as tk from formularios import tabmain0 import requests from bs4 import BeautifulSoup import webbrowser 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) # this is were i whant the browser window to show 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: home_browser.insert(tk.INSERT, urlbook) 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 ":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, 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 == "" 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)im testin in here
# Hello world example. Doesn't depend on any third party GUI framework. # Tested with CEF Python v57.0+. from tkinter import ttk from cefpython3 import cefpython as cef import platform import sys import tkinter as tk from selenium import webdriver import logging as _logging import undetected_chromedriver.v2 as uc options = webdriver.ChromeOptions() options.add_experimental_option('excludeSwitches', ['enable-logging']) driver = uc.Chrome() def open_link(url): print(url) #root.destroy() sys.excepthook = cef.ExceptHook # To shutdown all CEF processes on error cef.Initialize() cef.CreateBrowserSync(url=url,window_title=url) cef.MessageLoop() main() def main(): logger = _logging.getLogger("tkinter_.py") logger.setLevel(_logging.DEBUG) stream_handler = _logging.StreamHandler() formatter = _logging.Formatter("[%(filename)s] %(message)s") stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) logger.info("CEF Python {ver}".format(ver=cef.__version__)) logger.info("Python {ver} {arch}".format( ver=platform.python_version(), arch=platform.architecture()[0])) logger.info("Tk {ver}".format(ver=tk.Tcl().eval('info patchlevel'))) assert cef.__version__ >= "55.3", "CEF Python v55.3+ required to run this" sys.excepthook = cef.ExceptHook # To shutdown all CEF processes on error # Tk must be initialized before CEF otherwise fatal error (Issue #306) global root root = tk.Tk() root.geometry("400x100") frm1 = ttk.Frame(root) frm1.pack() frmbrowser = ttk.Frame(root) frmbrowser.pack() open_link("https://www.google.com/") # Platforms WINDOWS = (platform.system() == "Windows") LINUX = (platform.system() == "Linux") MAC = (platform.system() == "Darwin") settings = {} if MAC: settings["external_message_pump"] = True cef.Initialize(settings=settings) logger.debug("Main loop exited") root.mainloop() cef.Shutdown() if __name__ == '__main__': main()