所以我一直在研究一個 Tkinter 專案,以在 Python 方面變得更好,我制作了一個猜數字游戲 (number_guesser.py),現在我正在嘗試制作一個帶有按鈕的選單視窗。根據您單擊的按鈕,它會將您轉到指定的游戲視窗并關閉主視窗。
這是我在 main.py 檔案(選單視窗)中的當前代碼
import os
import random
main = tk.Tk()
main.title("Minigames")
main.geometry("450x400")
main.resizable(width= False, height= False)
def forwardtoo():
os.startfile('C:/Users/Windows/PycharmProjects/GUI with minigames/number_guesser.py')
main.destroy()
b1 = tk.Button(main, text="Number Guesser", command=forwardtoo)
b1.place(x = 170, y = 250)
main.mainloop()
所以我看到人們說要這樣做,os.startfile(path[, operation][, arguments][, cwd][, show_cmd])但問題是我不知道我必須投入什么操作,引數,cwd 和 show cwd。如果這是一個簡單的解決方案,我很抱歉,但我是 Python 新手并且仍在學習它。
我感謝每一個幫助:)
uj5u.com熱心網友回復:
如果我理解正確,基于單擊的按鈕 您想運行特定游戲嗎?如果是這樣,最好的方法是匯入一些負責運行游戲的函式,然后運行而不是執行整個腳本。例如:
假設檔案 number_guesser.py 如下所示:
def guesser_logic():
# some_logic
...
def run():
guesser_logic()
然后在包含按鈕操作的檔案中(讓我們將其命名為 main.py),您可以執行以下操作:
import os
import random
from number_guesser import run
main = tk.Tk()
main.title("Minigames")
main.geometry("450x400")
main.resizable(width= False, height= False)
def forwardtoo():
run()
main.destroy()
b1 = tk.Button(main, text="Number Guesser", command=forwardtoo)
b1.place(x = 170, y = 250)
main.mainloop()
注意額外的匯入和我所做的更改。
uj5u.com熱心網友回復:
來自檔案:“當給出另一個操作時,它必須是一個“命令動詞”,指定應該對檔案做什么。微軟記錄的常用動詞是“列印”和“編輯”(用于檔案)作為以及 'explore' 和 'find'(用于目錄)。”。為了您的目的,您可以將其留空。
但是,我建議您不要使用 os.startfile。我猜你的程式在另一個檔案中,例如“play_game.py”,有一個名為“start_game()”的函式如果它在你的當前目錄中,那么你可以像這樣匯入它:
import os
import random
import play_game
main = tk.Tk()
main.title("Minigames")
main.geometry("450x400")
main.resizable(width= False, height= False)
def forwardtoo():
play_game.start_game()
main.destroy()
b1 = tk.Button(main, text="Number Guesser", command=forwardtoo)
b1.place(x = 170, y = 250)
main.mainloop()
現在可以使用檔案中的每個函式呼叫play_game.NAME_OF_THE_FUNCTION()
您還應該創建一個輸入文本欄位,以便用戶可以玩他想要的輸入,您需要存盤輸入,然后創建一個鏈接到 start_game() 的按鈕,它將檢索用戶的輸入。希望這很清楚并且有幫助!
uj5u.com熱心網友回復:
首先,代碼不起作用,因為您缺少 tkinter 匯入。 以下代碼將啟動您在 os.startfile 中指定的游戲,在我為您修改的代碼中,它將啟動計算器應用程式。您可以添加更多按鈕和更多功能來啟動更多游戲,或者您可以使用單個按鈕創建下拉選單以啟動您在下拉選單下選擇的內容。
import tkinter as tk
import os
main = tk.Tk()
main.title("Minigames")
main.geometry("450x400")
main.resizable(width= False, height= False)
def forwardtoo():
os.startfile('C:/Users/my/Desktop/programming/tkinter/calculator.py')
main.destroy()
b1 = Button(main, text="Number Guesser", command=forwardtoo)
b1.place(x=170, y=250)
main.mainloop()
如果您不想使用 os 模塊從您的計算機呼叫不同的腳本,您可以在當前代碼中創建函式來保存游戲邏輯,或者創建包含游戲的類,選擇權在您手中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365150.html
