【PyQt5】学习笔记(1)
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets,QtCore #从pyqt库导入QtWindget通用窗口类
from formnew import Ui_Form class mywindow(QtWidgets.QWidget,Ui_Form): #自己建的类,继承QtWidgets.Qwidget类方法和Ui_Form界面类 _signal = QtCore.pyqtSignal(str) #定义信号,定义参数类型为str def __init__(self):
super(mywindow,self).__init__() #首先找到子类(mywindow)的父类(QWidget),然后把my的对象self转成QWidget的对象,然后被转化的self调用自己的init函数
self.setupUi(self) #直接继承界面类,调用类的setupUi方法 self.pushButton_2.clicked.connect(self.myPrint) #连接自己的槽函数
self._signal.connect(self.mySignal) #将信号连接到函数mySignal def myPrint(self): #自定义的槽函数。槽其实就是个函数(方法)
self.textBrowser.setText("")
self.textBrowser.append("我是槽函数")
self._signal.emit("发射信号,传递字符串") def mySignal(self,string): #自定义信号函数
self.textBrowser.append(string) #接受到字符串,打印出来
self.textBrowser.append("我是信号函数") if __name__=="__main__":
import sys app=QtWidgets.QApplication(sys.argv) #pyqt窗口必须在QApplication方法中使用
myshow=mywindow() #生成mywindow类的实例 myshow
myshow.show() #myshow调用show方法
sys.exit(app.exec()) #消息结束的时候,结束进程,并返回0,接着调用sys.exit(0)退出程序
上面这个是index.py
从qtdesigner直接生成的代码:
__author__ = 'yangyang5'
from PyQt5 import QtCore, QtGui, QtWidgets #导入模块
class Ui_Form(object): #创建窗口类,继承object
def setupUi(self, Form):
Form.setObjectName("Form") #设置窗口名
Form.resize(400, 300) #设置窗口大小
self.pushButton = QtWidgets.QPushButton(Form) #新建按钮,并加入到窗口中
self.pushButton.setGeometry(QtCore.QRect(270, 240, 75, 23)) #设置按钮的大小和位置
self.pushButton.setObjectName("pushButton") #设置按钮名
self.textBrowser = QtWidgets.QTextBrowser(Form)
self.textBrowser.setGeometry(QtCore.QRect(60, 20, 256, 192))
self.textBrowser.setObjectName("textBrowser")
self.pushButton_2 = QtWidgets.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(40, 240, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.retranslateUi(Form)
self.pushButton.clicked.connect(Form.close) #点击按钮,关闭窗体
QtCore.QMetaObject.connectSlotsByName(Form) #关联信号槽
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form")) #设置窗口标题
self.pushButton.setText(_translate("Form", "Quit")) #设置按钮名
self.pushButton_2.setText(_translate("Form", "Print"))
使用环境:
Python3.4 + Pyqt5第三方库
相关资料:
http://blog.csdn.net/a359680405/article/details/45096185
【PyQt5】学习笔记(1)的更多相关文章
- PyQt5学习笔记-从主窗体打开一个子窗体
PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...
- Pyqt5学习笔记(一)
Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...
- PyQt5学习笔记----标准文件打开保存框QFileDialog
单个文件打开 QFileDialog.getOpenFileName()多个文件打开 QFileDialog.getOpenFileNames() 文件夹选取 QFileDialog.getE ...
- PYQT5学习笔记之各模块介绍
Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 Qtwidegts下还有以下常用对象,所以一般使用Qtwidegts时会使用面向对象式编程 QApplication: ap ...
- PyQt5学习笔记14----初识pyqt多线程操作
转载:翻滚吧挨踢男 首先来看一个例子: # coding=utf-8 __author__ = 'a359680405' from PyQt5.QtCore import * from PyQt5.Q ...
- Python pyQt4/PyQt5 学习笔记4(事件和信号)
信号 & 槽 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QWidget,QLCDNumber,QS ...
- Python pyQt4/PyQt5 学习笔记3(绝对对位,盒布局,网格布局)
本节研究布局管理的内容. (一)绝对对位 import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__( ...
- Python pyQt4/pyQt5 学习笔记2(状态栏、菜单栏和工具栏)
例子:状态栏.菜单栏和工具栏 import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(sel ...
- Python pyQt4/pyQt5 学习笔记1(空白窗口,按钮,控件事件,控件提示,窗体显示到屏幕中间,messagebox)
PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包.PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法.同时它也是一个可以在几乎所有主流 ...
- PyQt5学习笔记
setMouseTracking bool mouseTracking这个属性保存的是窗口部件跟踪鼠标是否生效.如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标按键被按下时,这个窗口部件 ...
随机推荐
- java 异常2
自定义异常类: import java.util.Scanner; /** * Created by lenovo on 2016/8/12. */ class NoMoneyException ex ...
- 【bzoj1057】棋盘制作
题意 给定\(n*m\)的棋盘,每个格子有0或1其中的一种颜色. 求一个最大的正方形,满足正方形内0和1相互间隔. 求一个最大的矩形,满足矩形内0和1相互间隔. \(n,m\leq 2000\) 分析 ...
- WinForm应用程序之注册模块的设计与实现
Posted on 2012-11-13 10:21 星星之火116 阅读(3260) 评论(4) 编辑 收藏 我们在安装一些桌面应用程序的时候,往往在会有提示当前用户使用的是试用版,要进行注册.刚好 ...
- 20145218 《Java程序设计》第05次实验报告
北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验名称:Java网络编程及安全 一.实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使 ...
- maven工程打包成runnable的jar包,拷贝资源和依赖jar包
eclipse下新建maven工程,生成runnable的jar包.之前一直是手动拷贝依赖的jar包和资源文件,烦得要死.上网可劲查了一下.解决方案如下. 在pom的配置文件中做如下配置: <b ...
- 《Java程序设计》第三周学习总结
20145224-陈颢文 <Java程序设计>第三周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字,要对类中变量(值域成员/对象数据成员)行类型声明. class ...
- HDU-------(2795)Billboard(线段树区间更新)
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 【转载】JSP中文乱码问题
原作者http://www.cnblogs.com/xing901022/p/4354529.html 阅读目录 之前总是碰到JSP页面乱码的问题,每次都是现在网上搜,然后胡乱改,改完也不明白原因. ...
- 328. Odd Even Linked List——多利用fake_head
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- Asp.Net MVC EF各版本区别
2009年發行ASP.NET MVC 1.0版 2010年發行ASP.NET MVC 2.0版,VS2010 2011年發行ASP.NET MVC 3.0版+EF4,需要.Net4.0支持,VS2 ...