Python GUI中带有字段的按钮
你可能熟悉也可能不熟悉一款叫做“狼人”的流行派对游戏——游戏的细节在这里并不重要,但我正在尝试制作一个程序,它将决定参赛队伍 我有以下相当简单的代码-它由3个方法组成,我希望将它们附加到按钮上,然后在程序运行时显示在窗口中 代码如下所示:Python GUI中带有字段的按钮,python,user-interface,tkinter,Python,User Interface,Tkinter,你可能熟悉也可能不熟悉一款叫做“狼人”的流行派对游戏——游戏的细节在这里并不重要,但我正在尝试制作一个程序,它将决定参赛队伍 我有以下相当简单的代码-它由3个方法组成,我希望将它们附加到按钮上,然后在程序运行时显示在窗口中 代码如下所示: from Tkinter import * from random import randint # import random integer generator playerList = [] numberOfWolves = 0 def setWolf
from Tkinter import *
from random import randint # import random integer generator
playerList = []
numberOfWolves = 0
def setWolfNumber(x):
numberOfWolves = x
def listAdd(string):
playerList.append(string)
def chooseTeams():
werewolves = [] # list of wolves, populated later for printing
villagers = [] # same as wolves but for villiagers
for x in range(0,len(playerList)): # loop for the number of players. Each iteration chooses a random player and decides whether they're a werewolf or not. After 2 werewolves it just adds villagers.
random = randint(0,len(playerList)-1)
player = playerList[random]
decide = randint(0,1)
if decide == 0 and len(werewolves) < numberOfWolves:
werewolves.append(player)
else:
villagers.append(player)
playerList.remove(player)
for wolf in werewolves: #prints wolf names
print wolf + " is a werewolf"
seer = villagers[randint(0,len(villagers))-1] #decide seer, print that, make sure they won't be reprinted with villagers
villagers.remove(seer)
print seer + " is the seer"
doctor = villagers[randint(0,len(villagers))-1] #same as seer but with the doctor
villagers.remove(doctor)
print doctor + " is the doctor"
for villager in villagers: # print villagers
print villager + " is a villager"
top = Tk()
top.wm_title("Werewolves Team Chooser")
w = Button(top)
top.mainloop()
从Tkinter导入*
从随机导入randint#导入随机整数生成器
playerList=[]
NumberOfWolfs=0
def setWolfNumber(x):
数量=x
def listAdd(字符串):
playerList.append(字符串)
def chooseTeams():
狼人=[]#狼列表,稍后填充以供打印
村民=[]#与狼一样,但对村民而言
对于范围内的x(0,len(playerList)):#循环表示玩家数量。每次迭代选择一个随机玩家,并决定他们是否是狼人。在2个狼人之后,它只是增加了村民。
random=randint(0,len(playerList)-1)
玩家=玩家列表[随机]
decise=randint(0,1)
如果Decise==0且len(狼人)
我相信您可以看到,GUI的代码非常不完整。有人能告诉我如何在GUI中显示字段,并将它们附加到按钮上吗?实际上,我所寻找的是一个增加玩家的领域,一个设定狼人数量的领域;然后是一个按钮,它获取信息并决定团队-使用提供的方法
任何帮助都将不胜感激
奖励:将成品转换为可执行文件以便我的朋友也可以使用它有多难
非常感谢 您的按钮未显示,因为您尚未对其调用pack。实际上,您创建了一个按钮,但尚未将其添加到窗口中。有三个布局管理器可用于添加“小部件”(GUI中Tkinter的名称)。它们是包、网格和位置。对于一个简单的窗口,如您正在制作的窗口,pack应该可以正常工作。当您以后执行更大的项目时,网格将成为一个非常有用的工具。创建按钮后,将w.pack()添加到代码中后,您将看到按钮没有名称。您可以通过将text=“some text”添加到构造函数中的参数来添加它。类似地,您可以使用callback=function(注意缺少括号)向按钮添加操作,并将其绑定到操作。您还可以创建类似于按钮创建方式的“字段”。简单地使用Entry()并填充所需的参数(我建议查找StringVar以获取有关检索输入的信息) 从最终的项目中生成一个exe并不太糟糕。就我个人而言,我喜欢使用PyInstaller,它接受脚本的名称和一些参数,并为您创建整个过程。还有其他工具,比如py2exe,也可以做同样的事情 祝你好运!(另请注意,这是一个很棒的游戏,希望一切顺利!)