2017-05-04 40 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.真棒遊戲,希望它順利!)