【发布时间】:2020-09-16 08:52:22
【问题描述】:
我是 tkinter 的新手,到目前为止我已经构建了这个:
import tkinter as tk
import subprocess
import os
def maingui():
window = tk.Tk()
window.title("My first GUI")
#window.state('zoomed')
window.geometry("700x205")
window.configure(bg="black")
frame1 = tk.Frame(window, width=90, bg="orange")
# frame1.pack(fill=tk.Y, side=tk.LEFT)
frame1.grid(row=0, column=0)
frame2 = tk.Frame(window, width=1890, bg="black")
# frame2.pack(fill=tk.Y, side=tk.RIGHT)
frame2.grid(row=0, column=1)
lotomat = tk.Button(frame1, text=" Start\n Lotomat", padx=10, pady=5, bg="orange", fg="black",
relief=tk.GROOVE, command=lambda : startLotomat())
# lotomat.pack()
lotomat.grid(row=1, column=0)
convert = tk.Button(frame1, text=" URL2IP \n on \n Desktop", padx=10, pady=5, bg="orange", fg="black",
relief=tk.GROOVE, command=lambda : startURL2IP())
# convert.pack()
convert.grid(row=2, column=0)
startRps = tk.Button(frame1, text=" Start \nR.P.S", padx=12, pady=5, bg="orange", fg="black",
relief=tk.GROOVE, command=lambda : startRPS())
# startRps.pack()
startRps.grid(row=3, column=0)
endRun = tk.Button(frame1, text="Quit", padx=12, pady=10, bg="orange", fg="black",
relief=tk.RIDGE, command=lambda : ending())
# endRun.pack()
endRun.grid(row=4, column=0)
def startLotomat():
os.system('python lotomat.py')
def startURL2IP():
os.system('python urltoipondesktop.py')
def startRPS():
os.system('python rockpaperscissors.py')
def ending():
exit()
window.mainloop()
maingui()
每个按钮运行不同的 .py 文件。 如何使用框架分割窗口,使程序在右侧运行? 谢谢!
【问题讨论】:
-
能否请您发布所有
.py文件?谢谢! -
它们有什么关系?他们在环境中工作(Pycharm)
-
好吧,但是我没有pycharm,你应该放那个标签。
-
标签已更新,感谢评论
-
如果您只想捕获控制台输出,最好使用
Text小部件而不是Frame。将os.system(...)替换为proc = subprocess.run(..., capture_output=True),然后使用textbox.insert(tk.END, proc.stdout.decode())将控制台输出放入Text小部件,其中textbox是Text的一个实例。
标签: python windows user-interface tkinter pycharm