我在扫描条形码后试图打开文件(或网站)。我的条形码显示在tkinter终端中,但我不知道如何创建一个操作来打开文件或网站。 这是我的代码:
import tkinter as tk
from tkinter.messagebox import showinfo
class Window(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.geometry('100x20')
self.code = ''
self.label = tk.Label(self, text="?")
self.label.pack()
self.bind('<Key>', self.get_key)
def get_key(self, event):
if event.char in '0123456789':
self.code += event.char
#print('>', self.code)
self.label['text'] = self.code
elif event.keysym == 'Return':
#print('result:', self.code)
showinfo('Code', self.code)
win = Window()
win.mainloop()
有人可以帮助我如何处理它。如何创建界面或按钮来打开文件/网站?
感谢您的帮助
答案 0 :(得分:1)
开设网站:
import webbrowser # pre-installed with python
url = 'www.google.co.uk'
webbrowser.open(url)
打开文件(Windows):
import os # pre installed
os.startfile('file directory') # e.g "G:/Documents/School/image.png"
有关webbrowser和os模块的更多详细信息和方法,请查看:
这是一个带有条形码并打开文件或网页的迷你用户界面:
import os
from tkinter import *
import webbrowser
class Application(Frame):
def __init__ (self, master):
Frame.__init__(self,master)
self.grid()
b = StringVar()
b.set("Enter barcode")
self.barcode = Entry(self, textvariable = b)
self.barcode.grid(row=0, column=1, sticky='n')
self.submit = Button(self, text = "Submit", command = self.get_barcode)
self.submit.grid(row=1, column=1, sticky='s')
def get_barcode(self):
barcode = int(self.barcode.get())
if barcode == 000:
url = "www.google.co.uk"
webbrowser.open(url)
elif barcode == 111:
os.startfile("C:\Program Files\Internet Explorer\iexplore.exe")
else:
print("invalid barcode or something")
root= Tk()
app = Application(root)
root.mainloop()
显然我没有添加任何验证,但你可以轻松地做到这一点,甚至可能为验证添加一些弹出对话框。