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()
