前言
上一节中,我们已经完成了程序的界面设计,并初步编写了主函数可以生成程序的界面。这一节将介绍如何编写各控件的调用函数,实现摄像头参数的调控,并通过time函数实现摄像头的实时图像显示。
在上一节中,我们通过QtDesigner生成了程序界面的ui文件,然后通过PyUIC将该ui文件转换成了py文件。在PyCharm中打开pyuic生成的py文件:“QtTest.py”,该文件的主要内容如下所示:
该文件中定义了一个界面类Ui_CamShow,在该类中定义了两个函数setupUi和retranslateUi。展开setupUi函数可以发现,该函数的内容正是我们在QtDesigner中进行的各种控件、布局的创建和属性设置。而retranslateUi函数主要实现各控件的显示设置。由于setupUi函数的末尾调用了retranslateUi函数,因此我们在主函数中只需要调用setupUi函数就可以生成程序界面。
在上一节中,为了观察程序界面的运行效果,我们简单编写了一下主函数,内容如下图所示。首先,我们从创建好的QtTest中导入界面类Ui_CamShow,然后导入程序需要的各种库函数。接下来,我们定义了一个新的类CamShow,用来实现程序的主要功能。程序的最后一段,“if name == ‘main’:”后面的内容是程序的主函数,它的内容很少,在后续工作中也不再进行修改,其功能就是控制程序的开始和结束,实例化CamShow类。我们的主要代码内容都放在CamShow类中。
目前,在CamShow类中,我们只定义了一个初始化函数“init(self,parent=None):”,在实例化CamShow类时,会自动调用它的初始化函数,因此,我们把想要让程序自动实现的程序功能都放在该函数下。目前,该函数下调用了两个函数:super函数实现了类的继承,将QMainWindow,Ui_CamShow的各种属性过继给CamShow类;setupUI函数则是从Ui_CamShow中继承过来的函数,用来实现程序界面的创建和属性设置。
super(CamShow,self).__init__(parent)
self.setupUi(self)
接下来,我们在初始化函数“init(sel