Как мне получить текст, написанный во входном окне из Tkinter, и поместить его в переменную? - PullRequest
0 голосов
/ 09 июля 2020

Я любитель python и пытаюсь создать программу, которая отправляет сообщения WhatsApp, набирая ваше сообщение и всех получателей в окне ввода tkinter. Мне нужно поместить текст, записанный в окне, в переменную, чтобы программа знала, что отправлять и в какие группы это отправлять. Вот мой код:

import tkinter
import tkinter as tk
import pyautogui
root = tk.Tk()
v = tk.IntVar()
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By



def message_send(self=None):
    print(message)
    driver = webdriver.Chrome('C:/Program Files(x86)/chromedriver_win32/chromedriver')

    driver.get("https://web.whatsapp.com/")
    wait = WebDriverWait(driver, 600)

    target_one = recipient_one.get()

    string = message.get()
    x_arg = '//span[contains(@title,' + target_one + ')]'
    group_title = wait.until(EC.presence_of_element_located((
        By.XPATH, x_arg)))
    group_title.click()





#This function contains the code for the main message interface. This also contains the recipient variables.
def begin():
    import tkinter
    window = tkinter.Tk()
    window.title("Whatsapp Message Creator")
    tkinter.Label(window, text="Write advert here:").grid(row=0)
    message = tkinter.Entry(window).grid(row=0, column=1)# 'username' is placed on position 00 (row - 0 and column - 0)
    tkinter.Label(window, text="Write recipient 1 here:").grid(row=1)
    recipient_one = tkinter.Entry(window).grid(row=1, column=1)
    tkinter.Label(window, text="Write recipient 2 here:").grid(row=2)
    recipient_two = tkinter.Entry(window).grid(row=2, column=1)
    tkinter.Label(window, text="Write recipient 3 here:").grid(row=3)
    recipient_three = tkinter.Entry(window).grid(row=3, column=1)
    tkinter.Label(window, text="Write recipient 4 here:").grid(row=4)
    recipient_four = tkinter.Entry(window).grid(row=4, column=1)
    tkinter.Label(window, text="Write recipient 5 here:").grid(row=5)
    recipient_five = tkinter.Entry(window).grid(row=5, column=1)
    send_button = tk.Button(root, text='Send', width=20, command=message_send) #message_send function will contain all the programming to send the message.
    send_button.pack()
    tkinter.mainloop()
window = tk.Label(root,
        text="""Welcome to the Whatsapp Message Creator!""",
        justify = tk.LEFT,
        padx = 20).pack()

button = tk.Button(root, text='Begin', width=20, command=begin)
button.pack()
button = tk.Button(root, text='Exit', width=20, command=root.destroy)
button.pack()


root.mainloop()
tkinter.mainloop()
tkinter.mainloop()
```**strong text**

I have tried using the .get() function but it doesn't seem to work, and I can't find any sources that explain it properly. Could anyone help me? Thanks

1 Ответ

0 голосов
/ 10 июля 2020

Попробуйте использовать аргумент текстовой переменной для виджета ввода, а затем попробуйте получить ввод, например:

random = StringVar()
Entry(root,textvariable=random)

Затем позже вы можете использовать random.get(). У вас могут быть проблемы с .get(), возможно, потому что вы говорите Entry(....).pack() в той же строке. Разделите его на две строки, и это может помочь

e = Entry(...)
e.pack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...