首页 > 解决方案 > 使用 `os.system("")` 打开新窗口并单击按钮上的 cmd

问题描述

我有一个问题,我使用该os.system(")函数打开不同的脚本,但单击按钮时,它会打开脚本和 cmd。脚本编写如下:

from tkinter import *
from tkinter.ttk import *
import os

master = Tk()
master.title("Manufacturing")
master.config(bg="skyblue3")

l1 = Label(master, text="Reflex Footwear (Pty) Ltd", font=["Calibri, bold", 20])
l1.grid(row=0, column=1, columnspan=2, sticky=N, pady=2)


def tkinter1():
    ret = os.system('python C:\Users\PycharmProjects\SoftwareTest\orders.py')
    if ret:
        exit()


def tkinter2():
    ret = os.system('python C:\Users\PycharmProjects\SoftwareTest\handlacing.py')
    if ret:
        exit()


def tkinter3():
    ret = os.system('python C:\Users\PycharmProjects\SoftwareTest\stock_sheet.py')
    if ret:
        exit()


def tkinter4():
    ret = os.system('python C:\Users\PycharmProjects\SoftwareTest\logistics_view.py')
    if ret:
        exit()


def tkinter5():
    ret = os.system('python C:\Users\PycharmProjects\SoftwareTest\bill.py')
    if ret:
        exit()


def tkinter6():
    ret = os.system('python C:\Users\PycharmProjects\SoftwareTest\production.py')
    if ret:
        exit()

# Images
img = PhotoImage(file=r"C:\sig.png")
img1 = img.subsample(1, 1)

img = PhotoImage(file=r"C:\Buttons\exit.png")
img2 = img.subsample(2, 2)

img = PhotoImage(file=r"C:\Buttons\orders_in_house.png")
img3 = img.subsample(2, 2)

img = PhotoImage(file=r"C:\Buttons\handlacing.png")
img4 = img.subsample(2, 2)

img = PhotoImage(file=r"C:\Buttons\stock_in_house.png")
img5 = img.subsample(2, 2)

img = PhotoImage(file=r"C:\Buttons\logistics.png")
img6 = img.subsample(2, 2)

img = PhotoImage(file=r"C:\Buttons\bom.png")
img7 = img.subsample(2, 2)

img = PhotoImage(file=r"C:\Buttons\production.png")
img8 = img.subsample(2, 2)

# Setting image in label
Label(master, image=img1).grid(row=0, column=1, columnspan=4, rowspan=8, padx=20, pady=30)

# Buttons
# b1 = Button(master, text="Order In House", command=tkinter1)
b1 = Button(master, image=img3, command=tkinter1)
# b2 = Button(master, text="Handlacing", command=tkinter2)
b2 = Button(master, image=img4, command=tkinter2)
# b3 = Button(master, text="Stock In House", command=tkinter3)
b3 = Button(master, image=img5, command=tkinter3)
# b4 = Button(master, text="Logistics", command=tkinter4)
b4 = Button(master, image=img6, command=tkinter4)
# b5 = Button(master, text="Bill Of Materials", command=tkinter5)
b5 = Button(master, image=img7, command=tkinter5)
# b6 = Button(master, text="Production", command=tkinter6)
b6 = Button(master, image=img8, command=tkinter6)
# b7 = Button(master, text="Exit", command=master.destroy)
b7 = Button(master, image=img2, command=master.destroy)

# Arranging Buttons
b1.grid(row=1, column=0, padx=20, pady=5, sticky=W + N)
b2.grid(row=2, column=0, padx=20, pady=5, sticky=W + N)
b3.grid(row=3, column=0, padx=20, pady=5, sticky=W + N)
b4.grid(row=4, column=0, padx=20, pady=5, sticky=W + N)
b5.grid(row=5, column=0, padx=20, pady=5, sticky=W + N)
b6.grid(row=6, column=0, padx=20, pady=5, sticky=W + N)
b7.grid(row=7, column=0, padx=20, pady=5, sticky=W + N)

mainloop()

每次我单击按钮时,它都会打开一个新窗口。我想知道是否有一种方法,除了重新编程每个脚本之外,是否有一种方法可以在每次按钮单击时不打开 cmd。

当我pyinstaller使用我编译这个脚本时--onefile --windowed--onefile也看看结果是否可以让我选择每次单击按钮时不弹出 cmd。

我想最终打开一个.exe创建文件的窗口,然后当我单击按钮时,它只打开顶部选定的窗口/脚本,而不是打开 cmd,然后只打开下一个/其他脚本。

我希望这可以实现。

任何帮助将不胜感激。

标签: python-3.xtkinterbuttoncmdpyinstaller

解决方案


推荐阅读