镜头管理系统客户端开发小结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了镜头管理系统客户端开发小结相关的知识,希望对你有一定的参考价值。

上一篇小结提到PySide的信号槽机制,这篇文章主要总结PySide中的事件机制。

先上一段代码:

class MyLabel(QtGui.QLabel,ParentWindow):

    def __init__(self,index,parent = None):
        QtGui.QLabel.__init__(self,parent)

        self.index = int(index)
        self.shotname = None
        self.projectID = None
        self.newWindow = None
        self.count = 0
        

    def setText(self,n):
        QtGui.QLabel.setText(self,n)



    def text(self):
        return QtGui.QLabel.text(self)


    def mouseDoubleClickEvent(self,event):

        self.shotname  = ParentWindow.subshotslist[self.index][Shot][0]
        dictionary = ParentWindow.newstream.getItemFromGanttData(self.shotname)
        self.newWindow = SchedulePanel(dictionary)

        #print self.shotname
        if self.count == 0:
            self.count = 1
            self.newWindow.show()
            self.newWindow.move(event.globalPos())

        else:
            self.newWindow.close()
            self.count = 0

 

我们都知道QtGui.QLabel类中是没有事件机制的。想要给该QtGui.QLabel类添加事件,就需要建立一个继承QtGui.QLabel的新类。在该新类中添加一系列事件函数。
本文提供的代码中创建了一个名为MyLabel的类,该类继承自QtGui.QLabel类,及一个本人自定义的名为ParentWindow的类,ParentWindow作为一个父类主要用于保存一些公用参数,可以无视。

在MyLabel类中我添加了一个名为mouseDoubleClickEvent的方法,该方法传入一个名为event的对象,event显然是一个获取当前鼠标位置的对象,而mouseDoubleClickEvent方法则类似于c++中的虚函数,在MyLabel对象发生鼠标双击事件时就会触发该函数。执行内部语句。

在该函数中,我实例化了一个名为SchedulePanel的控件对象,并通过self.count这个计数器机制来控制SchedulePanel对象的显示与关闭。

这种方法在PySide的UI控制中应该是广泛存在的,我特意写出来,给自己加深印象吧。

以上是关于镜头管理系统客户端开发小结的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg实现音视频同步的精准片段拼接

FFmpeg实现音视频同步的精准片段拼接

FFmpeg实现音视频同步的精准片段拼接

浏览器缓存知识小结及应用

游戏开发实战2D游戏摄像机镜头跟随,屏幕边缘限制镜头移动(使用Cinemachine组件)

游戏开发实战2D游戏摄像机镜头跟随,屏幕边缘限制镜头移动(使用Cinemachine组件)