【发布时间】:2020-08-14 20:52:56
【问题描述】:
我正在为另一个 python 程序创建一个 UI,它本质上只是为项目创建了一个交互式组件。目标是有一个特定的标签,从按钮运行的 python 程序更新(打印语句)。这是我在我的 UI 中编写的...
import tkinter as ttk
import subprocess
import sys
import time
import os
import tkinter.font as font
from tkinter.ttk import *
app = ttk.Tk()
app.geometry("400x400")
app.configure(bg='gray')
photo = ttk.PhotoImage(file=r"C:\Users\ex\ex_button_active.png")
myFont = font.Font(family='Helvetica', size=20, weight='normal')
ttk.Label(app, text='Ex', bg='gray', font=(
'Verdana', 15)).pack(side=ttk.TOP, pady=10)
app.iconbitmap(r'C:\Users\ex\ex_icon.ico')
def ex_activation():
global pro
print("Running program!")
pro = subprocess.Popen("python programex.py", shell=True)
def ex_stop():
global pro
print("Stopping Program... Please Wait!")
os.kill(pro.pid, 0)
ex_activation_button = ttk.Button(app, bg='black', image=photo, width=120, height=120, command=ex_activation)
ex_stop_button = ttk.Button(app, bg='Gray', text='Stop Program', width=12, command=ex_stop, height=3)
ex_stop_button['font'] = myFont
app.title("Ex")
ex_activation_button.pack(side=ttk.TOP)
ex_stop_button.pack(side=ttk.LEFT)
# app.mainloop()
while True:
try:
app.update()
app.update_idletasks()
except KeyboardInterrupt:
pass
如果有人知道如何在我的代码中实现This StackOverflow Post,我将非常感谢您的帮助和支持。
编辑 acw1668 这些是我运行的一些测试,在 Pycharm 运行窗口而不是 UI 中得到了一些奇怪的数字。
Running program!
3528
Stopping Program 3528 ... Please Wait!
monitor done
Running program!
144
Stopping Program 144 ... Please Wait!
monitor done
Running program!
14008
Stopping Program 14008 ... Please Wait!
monitor done
Running program!
21748
Stopping Program 21748 ... Please Wait!
monitor done
【问题讨论】:
-
大声笑,我从我的回答中认出了这段代码,至少是其中的一部分:stackoverflow.com/questions/63388925/… 无论如何,这是一个很酷的功能,所以让我尝试一下 :)
-
@EricRoy 谢谢 :) 我对 tkinter 还是很陌生。如果您很好奇,UI 是用于虚拟助手项目的。
-
虚拟助手会根据提出的问题打印数据。它也会说话,但打印数据是一个重要部分。
-
这是一件好事。我希望我的回答能帮助你更多地了解 tkinter :)
-
@EricRoy 我在回复时忘了告诉你,哈哈
标签: python python-3.x tkinter label