美文网首页
2019-02-04 3 pyQT5建立窗口控件

2019-02-04 3 pyQT5建立窗口控件

作者: gongdiwudu | 来源:发表于2019-02-04 19:25 被阅读0次

    3 建立窗口控件

    建立窗口的控件,需要注意以下几点:

    1)控件本身也是窗口,它的父窗口是主窗口,这里定义父窗口的原因是,让所有控件的事件,主窗口都能感知,并且做出响应。

    2)控件有一些基本的响应程序,如果这些程序不够用,需要人为定义消息响应。

    3)控件响应的原理,是“槽”+“事件”+“响应程序”的机理,其中“槽”将事件和响应程序关联起来,这个操作用connect语句完成;可以推断,槽是操作系统的标准事件触发,响应程序是用户设定,这是一个基本的回调机制。

    4)控件可以是窗口类内变量或者定义成应用内变量,无差别。

    5)控件是窗口,当然可以用setGeometry()设定其几何尺寸。

    6)pushbutton.clicked.connect(  self.buttonpushfunction )就是将按钮的点击事件和 函数buttonpushfunction相关联。

    7)closebutton.clicked.connect(self.close  )是将一个名称为closebutton的按钮点击事件,和 QMainWindow的close函数进行关联,因为close是标准函数,所以用户不需要写出回调函数。

    实验代码:


    from PyQt5.QtWidgetsimport QMainWindow,QApplication,QWidget, QPushButton,QLabel

    import sys

    class MyWnd( QMainWindow ):

        def __init__(self):

            super().__init__()

            self.title ="this is exam"

             self.top =100

             self.left =100

             self.width =400

             self.height =300

             closebutton = QPushButton("Close",self)

             closebutton.setGeometry(20,20,80,30)

             closebutton.clicked.connect(self.close  )

              pushbutton = QPushButton("Push",self)

              pushbutton.setGeometry(100,20,80,30)

              pushbutton.clicked.connect(self.buttonpushfunction )

              self.m_lab = QLabel(self)

              self.m_lab.setGeometry(20,80,80,30)

              self.initUI()

        def initUI(self):

            self.setWindowTitle(self.title)

            self.setGeometry(self.top  ,self.left ,self.width  ,self.height  )

            self.show()

        def buttonpushfunction(self):

            self.m_lab.setText("pushed button")

    if __name__ =="__main__":

        app = QApplication( sys.argv )

        win = MyWnd()

        sys.exit( app.exec() )

        

    相关文章

      网友评论

          本文标题:2019-02-04 3 pyQT5建立窗口控件

          本文链接:https://www.haomeiwen.com/subject/ibzpsqtx.html