Отключить кнопку отправки, пока все поля не будут заполнены в Python Tkinter - PullRequest
0 голосов
/ 17 марта 2019

В настоящее время я работаю над проектом, и когда моя программа запускается, ей нужно получить имена двух игроков, прежде чем начать, так же, как моя программа в данный момент, можно нажать «отправить» без ввода имен, как это сделать?Я предотвращаю это?

Большое спасибо Jayode18

# Program by Jack O'Donnell (Jayode18 StackOverflow/GitHub)
# Date Started: 16th March 2019


# Import winsound and create functions for each of the sound effects & their functionalities.
import tkinter
import time
from tkinter import *
import random
import winsound

def gameOver():
    winsound.PlaySound("Gameover", winsound.SND_FILENAME)


def pointsDrop():
    winsound.PlaySound("Points drop", winsound.SND_FILENAME)


def pointsGain():
    winsound.PlaySound("Points gain", winsound.SND_FILENAME)


def flipCoin():
    winsound.PlaySound("coinflip", winsound.SND_FILENAME)


def rollDice():
    winsound.PlaySound("Dice", winsound.SND_FILENAME)


# Other Definitions #
def goToPrimary():
    primaryWindow = tkinter.Tk()
    primaryWindow.iconbitmap("icon.ico")
    primaryWindow.geometry("500x500")
    primaryWindow.title("YGO Calculator ver. 1.0 ALPHA")

    gainLPButton = Button(primaryWindow, text = "LP Gain", command = pointsGain)
    gainLPButton.grid(row = 2, column = 1)

    loseLPButton = Button(primaryWindow, text = "LP Loss", command = pointsDrop)
    loseLPButton.grid(row = 2, column = 2)


    gameOverButton = Button(primaryWindow, text = "LP = 0", command = gameOver)
    gameOverButton.grid(row = 2, column = 3)


    flipCoinButton = Button(primaryWindow, text = "Coin Toss", command = flipCoin)
    flipCoinButton.grid(row = 2, column = 4)

    rollDiceButton = Button(primaryWindow, text = "Roll Dice", command = rollDice)
    rollDiceButton.grid(row = 2, column = 5)


# Button Commands #

def OnSubmit():
  e = entry_duelist.get()
  print(e)
  time.sleep(0.25)
  window.destroy()
  goToPrimary()

# import tkinter and create the window window, then populate it with buttons to text window.    
window = tkinter.Tk()
window.resizable(width = False, height = False)
window.title("YGO Calculator ver. 1.0 ALPHA")
window.iconbitmap('icon.ico') # Give window the correct icon


mainWindow = Frame(window)

window.geometry("180x75")


label_duelist = Label(mainWindow, text="Duelist 1:")
label_duelist_2 = Label(mainWindow, text="Duelist 2:")

entry_duelist = Entry(mainWindow)
entry_duelist_2 = Entry(mainWindow)

label_duelist.grid(row = 4, column = 0)
label_duelist_2.grid(row = 5, column = 0)

entry_duelist.grid(row = 4, column = 1, columnspan = 4)
entry_duelist_2.grid(row = 5, column = 1, columnspan = 4)

submit_button = Button(mainWindow, text = "Submit", command = OnSubmit)

submit_button.grid(row = 7, column = 4, columnspan = 2)

mainWindow.grid(row = 5, column = 0)

window.mainloop()

Вся помощь будет потрясающей, спасибо еще раз!: D

Спасибо всем за помощь.Мне удалось найти рабочее решение!

1 Ответ

1 голос
/ 17 марта 2019

Вы можете проверить введенные тексты, например

if entry1.get() != "" And entry2.get() != "":
    # entries are not empty, do something 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...