我有一個沒有定義任何類或函式的模塊。代碼只能以命令式的方式撰寫,從頂部開始,一直向下運行。
我想使用 tkinter 模塊來呼叫它,所以我在新模塊中添加了一個 GUI,以便它作為應用程式而不是從命令提示符運行。
我試圖匯入它但失敗了。然后在新模塊中,我將所有 readyModule 定義為沒有引數的函式。
import openpyxl
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import pandas as pd
from openpyxl import load_workbook
from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Your App For Crawling")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
feet = StringVar()
feet_entry = ttk.Entry(mainframe, width=7, textvariable=feet)
feet_entry.grid(column=1, row=1, sticky=(W, E),ipadx=100,padx=33)
def crawler():
varInp= input("Url (enter) :")...#module code
ttk.Button(mainframe, text="scrape", command=crawler()).grid(column=3, row=3, sticky=W)
feet_entry.focus()
root.bind("<Return>", crawler())
root.mainloop()
但是,當我單擊運行時,它開始詢問定義函式內的輸入值。我想我已經為 tkinter 撰寫了足夠的代碼來打開用戶界面
...已編輯,如果我加起來root.mainloop()不是def crawling()函式,它會以我想要的方式打開,但是當我關閉 GUI 視窗時,在 cmd 上它再次詢問 abput input url
uj5u.com熱心網友回復:
你只用 2 行代碼就犯了 3 個常見錯誤。避免使用這樣的阻塞呼叫,input您tkinter.Entry可以使用feet.get()或 with檢索輸入feet_entry.get()。command=crawler()括號將立即運行該函式,調整為command=crawler,tkinter 將把它包裝在一個 tcl 程序中,該程序在單擊按鈕或以其他方式command呼叫時運行。最后一個常見錯誤是您使用constructor(master, **options).geometrymethod.(**options). 而是將構造的小部件存盤在變數中并在其上使用幾何方法。您可能希望使用不同的管理器更改狀態或重新定位小部件,使用存盤的參考更容易做到這一點。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Your App For Crawling")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky='nswe')
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
feet = tk.StringVar()
feet_entry = ttk.Entry(mainframe, width=7, textvariable=feet)
feet_entry.grid(column=1, row=1, sticky=(tk.W, tk.E),ipadx=100,padx=33)
feet_entry.focus()
def crawler():
varInp= feet.get()
button = ttk.Button(mainframe, text="scrape", command=crawler)
button.grid(column=3, row=3, sticky=tk.W)
root.bind("<Return>", crawler)
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/518297.html
