zoukankan      html  css  js  c++  java
  • 【PyQt5】学习笔记(1)

     1 # -*- coding: utf-8 -*-
     2 from PyQt5 import QtWidgets,QtCore                        #从pyqt库导入QtWindget通用窗口类
     3 from formnew import Ui_Form
     4 
     5 class mywindow(QtWidgets.QWidget,Ui_Form):                  #自己建的类,继承QtWidgets.Qwidget类方法和Ui_Form界面类
     6 
     7     _signal = QtCore.pyqtSignal(str)                #定义信号,定义参数类型为str
     8 
     9     def __init__(self):
    10         super(mywindow,self).__init__()             #首先找到子类(mywindow)的父类(QWidget),然后把my的对象self转成QWidget的对象,然后被转化的self调用自己的init函数
    11         self.setupUi(self)                          #直接继承界面类,调用类的setupUi方法
    12 
    13         self.pushButton_2.clicked.connect(self.myPrint)       #连接自己的槽函数
    14         self._signal.connect(self.mySignal)               #将信号连接到函数mySignal
    15 
    16     def myPrint(self):                                     #自定义的槽函数。槽其实就是个函数(方法)
    17         self.textBrowser.setText("")
    18         self.textBrowser.append("我是槽函数")
    19         self._signal.emit("发射信号,传递字符串")
    20 
    21     def mySignal(self,string):                                  #自定义信号函数
    22         self.textBrowser.append(string)                                           #接受到字符串,打印出来
    23         self.textBrowser.append("我是信号函数")
    24 
    25 
    26 if __name__=="__main__":
    27     import sys
    28 
    29     app=QtWidgets.QApplication(sys.argv)            #pyqt窗口必须在QApplication方法中使用
    30     myshow=mywindow()                               #生成mywindow类的实例 myshow
    31     myshow.show()                                   #myshow调用show方法
    32     sys.exit(app.exec())                            #消息结束的时候,结束进程,并返回0,接着调用sys.exit(0)退出程序

    上面这个是index.py

    从qtdesigner直接生成的代码:

     1 __author__ = 'yangyang5'
     2 
     3 from PyQt5 import QtCore, QtGui, QtWidgets                              #导入模块
     4 
     5 class Ui_Form(object):                                                  #创建窗口类,继承object
     6 
     7     def setupUi(self, Form):
     8         Form.setObjectName("Form")                                        #设置窗口名
     9         Form.resize(400, 300)                                              #设置窗口大小
    10         self.pushButton = QtWidgets.QPushButton(Form)                       #新建按钮,并加入到窗口中
    11         self.pushButton.setGeometry(QtCore.QRect(270, 240, 75, 23))         #设置按钮的大小和位置
    12         self.pushButton.setObjectName("pushButton")                         #设置按钮名
    13         self.textBrowser = QtWidgets.QTextBrowser(Form)
    14         self.textBrowser.setGeometry(QtCore.QRect(60, 20, 256, 192))
    15         self.textBrowser.setObjectName("textBrowser")
    16         self.pushButton_2 = QtWidgets.QPushButton(Form)
    17         self.pushButton_2.setGeometry(QtCore.QRect(40, 240, 75, 23))
    18         self.pushButton_2.setObjectName("pushButton_2")
    19 
    20 
    21         self.retranslateUi(Form)
    22         self.pushButton.clicked.connect(Form.close)                         #点击按钮,关闭窗体
    23         QtCore.QMetaObject.connectSlotsByName(Form)                         #关联信号槽
    24 
    25     def retranslateUi(self, Form):
    26         _translate = QtCore.QCoreApplication.translate
    27         Form.setWindowTitle(_translate("Form", "Form"))                     #设置窗口标题
    28         self.pushButton.setText(_translate("Form", "Quit"))                 #设置按钮名
    29         self.pushButton_2.setText(_translate("Form", "Print"))

    使用环境:

    Python3.4 + Pyqt5第三方库

    相关资料:

    http://blog.csdn.net/a359680405/article/details/45096185

  • 相关阅读:
    .NET MVC AjaxHelper
    .NET MVC HtmlHepler
    堆栈存储的区别
    两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
    == 和 equals 的区别是什么
    JDK 和 JRE 有什么区别?
    javaInt占几个字节
    java代码如何在没有安装JDK的Windows下运行
    java跨平台的原因
    MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
  • 原文地址:https://www.cnblogs.com/mogujiang/p/5611289.html
Copyright © 2011-2022 走看看