2017-05-04 41 views
0

您可能会也可能不熟悉名为“狼人”的流行聚会游戏 - 游戏的具体细节在这里并不重要,但我正在尝试制定一个计划,它。在Python图形用户界面中使用字段的按钮

我有下面的代码是相当简单的 - 它包括3个方法,我正在寻找附加到按钮,然后在程序运行时显示在窗口中。

的代码如下所示:

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

正如我敢肯定,你可以看到,对于GUI代码是非常不完整的。有人能告诉我如何在GUI中显示字段,并将它们附加到按钮上吗?实际上我正在寻找的是一个增加玩家的领域,以及一个设置狼人数量的领域;然后使用提供的方法来获取信息并决定团队的一个按钮。

任何帮助将不胜感激。

奖励:将成品转化为可执行文件有多难?我的朋友也可以使用它?

非常感谢!

回答

1

您的按钮不显示,因为您尚未在其上调用包。本质上,你创建了一个按钮,但是你没有将它添加到窗口中。有三种布局管理器可用于添加“小部件”(GUI中的Tkinter名称)。这些是包,网格和地点。对于一个简单的窗口,例如你正在制作的窗口,包装应该可以正常工作。当你做更大的项目时,网格将成为一个非常有用的工具。在创建按钮后,将w.pack()添加到代码后,您会看到该按钮没有名称。您可以通过向构造函数中的参数添加text =“some text”来添加它。同样,您可以使用callback = function(注意缺少括号)将操作添加到按钮并将其绑定到操作。您也可以创建类似于您制作按钮的“字段”。简单的使用Entry()来代替并填充你需要的参数(我建议查找StringVar以获取有关检索输入的信息)。

从最终项目中制作一个exe文件不是太糟糕。就我个人而言,我喜欢使用PyInstaller,它使用脚本的名称和一些参数,并为您创建整个事物。还有其他工具,如py2exe,它们可以做同样的事情。

祝你好运! (P.S.真棒游戏,希望它顺利!)