美文网首页
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