我是这个论坛的新成员,我需要你的帮助。 我正在尝试创建一个GUI。当我用Python2.7运行这个文件时,我的程序运行得非常好,但是由于pyinstaller的帮助,当我创建一个exe文件时,其中一个按钮不能工作。在
我的程序非常简单:我在可用的摄像头列表中选择一个摄像头,点击“显示”按钮,所选摄像头的视频帧将显示在一个新窗口中,这要归功于opencv。“退出”按钮用于退出应用程序。在
当我使用pyinstaller创建一个可执行文件时,会显示窗口,我可以选择一个摄像头,但“显示”按钮不起作用。我真的不明白为什么,而且没有显示错误消息。在
非常感谢你的帮助
import cv2
from Tkinter import *
class Gui:
def __init__(self):
self.root = Tk()
self.root.title("Rééducation posturale")
self.root.config(background="#FA8066")
self.root.rowconfigure(0, weight=1)
self.root.rowconfigure(1, weight=1)
self.root.columnconfigure(0, weight=1)
self.root.columnconfigure(1, weight=1)
self.boutonquitter=Button(self.root,text='Quit',font=("Helvetica", 10),command=self.Quitapp)
self.boutonquitter.pack()
self.boutonquitter.grid(row=1, column=1)
camIndices=self.detectNumCameras()
camIndex = []
for n in xrange(camIndices):
camIndex.append(n)
# LIST OF AVAILABLE CAMERA
Label(self.root, text="Camera",font=("Helvetica", 10), bg="#ECA7A6").grid(row=0, column=0)
self.cameraIndex = StringVar(self.root)
self.cameraIndex.set("Choose camera")
dropCamera = apply(OptionMenu, (self.root, self.cameraIndex) + tuple(camIndex))
dropCamera.grid(row=0, column=1)
#CLICK TO DISPLAY
self.bouton = Button(self.root, text="Display", font=("Helvetica", 10), command=self.checkCamera)
self.bouton.pack()
self.bouton.grid(row=1, column=0)
imageFrame = Frame(self.root, width=600, height=400)
self.display = Label(imageFrame)
self.root.mainloop()
# DETECT CAMERAS
def detectNumCameras(self):
ind = 0
while True:
vc = cv2.VideoCapture(ind)
if (vc.isOpened()):
ind += 1
vc.release()
else:
break
return(ind)
def checkCamera(self):
try:
self.cam.release()
except:
pass
self.cam=cv2.VideoCapture(int(self.cameraIndex.get()))
_,frame=self.cam.read()
self.display.after(10,self.show_frame)
#CLOSE THE APP
def Quitapp(self):
self.root.destroy()
cv2.destroyAllWindows()
#DISPLAY FRAME IN A NEW WINDOW
def show_frame(self):
ret,frame = self.cam.read()
if ret is True:
cv2.imshow('Video',frame)
cv2.waitKey(1)
self.display.after(10, self.show_frame)
Gui()
编辑:我尝试过py2exe并卸载了python2.7来安装python3.6,但是我仍然有同样的问题。。。我的代码也更简单:
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐