2016-03-04 35 views
2

我想提出一个随机的网站生成器上运行,从蟒蛇一个exe,我试图让这个当您单击按钮,生成它也打开你的浏览器,但一切的联系,我觉得对互联网将无法工作。 这是我的代码,我真的很感谢一些帮助。如何使用Tkinter的按钮

from tkinter import * 
import random 
import tkinter as tk 
from tkinter import ttk 
import os 
NORM_FONT=("timesnewroman", 12) 
root = Tk() 
class Window(Frame): 
    def showtxt(self): 
     text=Label(self, text="Please change the file location after os.startfile to the directory of your browser including the browser exe itself") 

    def openFile(self): 
     os.startfile("C:\Program Files (x86)\Mozilla Firefox\firefox") 



    def __init__(self, master=None): 
     Frame.__init__(self, master)     
     self.master = master 
     self.init_window() 


    def init_window(self): 

     self.showtxt 


     self.master.title("Random Website Generator") 


     self.pack(fill=BOTH, expand=1) 


     quitButton = Button(self, command = self.openFile, text="Generate URL", bg = "#009933") 

     quitButton.configure(command = lambda: popupmsg ("Please check the shell or command prompt for the URL. And please change the file location after os.startfile to the directory of your browser including the browser .exe itself")) 

     quitButton.bind('<ButtonRelease-1>', self.client_exit,) 

     quitButton.place(x=150, y=130) 

    def client_exit(self, event=None): 
     File = open("Random Website.txt",).readlines() 
     name=random.choice(File)[:-1] 
     print (name) 




def popupmsg(msg): 
    popup = tk.Tk() 
    popup.wm_title("Name Generator") 
    label = ttk.Label(popup, text=msg, font=NORM_FONT) 
    label.pack(side="top", fill="x", pady=10) 
    B1 = ttk.Button(popup, text="OK", command = popup.destroy) 
    B1.pack() 
    popup.mainloop() 






root.geometry("400x300") 

app = Window(root) 
root.mainloop() 

回答

2

我想象你的代码是提高WindowsError: [Error 2] The system cannot find the file specified: 'C:\\Program Files\\Mozilla Firefox (x86)\x0cirefox'。特别是,注意到这个错误是应该\f\x0c

你需要躲避反斜杠在你的文件的路径,否则你会在不知不觉中引用转义序列\f

os.startfile("C:\\Program Files (x86)\\Mozilla Firefox\\firefox") 

或者,您可以使用raw string

os.startfile(r"C:\Program Files (x86)\Mozilla Firefox\firefox") 
+0

或者在文件名中使用正斜杠,即使在Windows上也是如此,并避免反斜杠问题。 –