第一个程序:
# -*- coding: utf-8 -*-
"""第一个程序"""
import sys
from PyQt5 import QtWidgets,QtGui#模块包含的类提供了一套UI元素来创建经典桌面风格用户界面。QtGui:模块包含的类用于窗口化的系统结构,事件处理,2D绘图,基本图形,字体和文本。
app = QtWidgets.QApplication(sys.argv)
first_window = QtWidgets.QWidget()#将这个函数换个名字,可以更加清楚的理解这个函数的意思
first_window.resize(400,300)#长400,宽300
first_window.setWindowTitle("我的第一个程序")#程序标题,显示这个标题
first_window.show()#显示这个窗口
sys.exit(app.exec_())
第二个程序:
# -*- coding: utf-8 -*-
"""设置图标"""
import sys
from PyQt5 import QtWidgets, QtGui # Qwidget组件是PyQt5中所有用户界面类的基础类
class Icon(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 250, 150)#前面两个参数是坐标,后面两个参数是长宽
self.setWindowTitle("图标")# 设置了我们窗口的标题
self.setWindowIcon(QtGui.QIcon(r'sample.ico'))# 本地有个sample.ico文件
app = QtWidgets.QApplication(sys.argv)
icon = Icon()#将函数赋给icon
icon.show()#显示icon
sys.exit(app.exec_())
第三个程序:
# -*- coding: utf-8 -*-
"""用按钮关闭程序"""
import sys
from PyQt5 import QtWidgets, QtCore, QtGui#导入第一个就能用了,不知道为啥要带入三个
class QuitButton(QtWidgets.QWidget):#创建一个了类,
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 250, 150)#前两个参数是坐标,后两个参数是大小
self.setWindowTitle("我的关闭程序")#标题
quit_button = QtWidgets.QPushButton("关闭", self)
quit_button.setGeometry(60, 60, 60, 35)#按钮位置和大小
quit_button.clicked.connect(QtWidgets.qApp.quit)#信号和槽连接
app = QtWidgets.QApplication(sys.argv)
quitbutton = QuitButton()#将函数换个名字更容易记忆
quitbutton.show()#显示函数
sys.exit(app.exec_())
第5个程序:
# -*- coding: utf-8 -*-
"""用按钮关闭程序"""
import sys
from PyQt5 import QtWidgets, QtCore, QtGui#还是那句话后面这两个模块根本没用为什么要加上
class MessageBox(QtWidgets.QWidget):#定义一个类
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 250, 150)#前面显示窗口的坐标,后面显示窗口大小
self.setWindowTitle("消息窗口演示程序")
def closeEvent(self, event):#定义一个类
reply = QtWidgets.QMessageBox.question(self, '确认退出?', '你确定要退出吗?',
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
event.accept()#接受
else:
event.ignore()#忽视
app = QtWidgets.QApplication(sys.argv)
qb = MessageBox()
qb.show()
sys.exit(app.e
第六个程序:
# -*- coding: utf-8 -*-
"""信号槽示例"""
import sys
from PyQt5 import QtWidgets, QtCore
class SignalSlot(QtWidgets.QWidget):
def __init__(self):
super(SignalSlot, self).__init__()
self.setWindowTitle("信号槽演示程序")
self.resize(250, 150)#设置大小
lcd = QtWidgets.QLCDNumber(self)#QLCDNumber控件用于显示一个带有类似液晶显示屏效果的数字。
slider = QtWidgets.QSlider(QtCore.Qt.Horizontal, self)#QSlider控件提供了一个垂直或者水平的滑动条,
v_box = QtWidgets.QVBoxLayout()#垂直布局管理器QVBoxLayout
v_box.addWidget(lcd)#lcd
v_box.addWidget(slider)#滑块
self.setLayout(v_box)
slider.valueChanged.connect(lcd.display)
# 我们将滑块的valueChanged信号连接到lcd的display槽函数上
# emit.signal.connect(accept.slot)
app = QtWidgets.QApplication(sys.argv)
qb = SignalSlot()
qb.show()
sys.exit(app.exec_())
第七个程序:
# -*- coding: utf-8 -*-
"""用esc键退出示例"""
import sys
from PyQt5 import QtWidgets, QtCore
class Escape(QtWidgets.QWidget):
def __init__(self):
super(Escape, self).__init__()
self.setWindowTitle("用esc键退出示例")
self.resize(250, 150)
def keyPressEvent(self, event):
if event.key() == QtCore.QT.Key_Escape:#如果按下了esc则
self.close()
# keypressevent事件处理方法
app = QtWidgets.QApplication(sys.argv)
escape = Escape()
escape.show()
sys.exit(app.exec_())
# 当我们按下esc键,程序就会结束。
第八个程序:
# -*- coding: utf-8 -*-
"""发射信号示例"""
import sys
from PyQt5 import QtWidgets, QtCore
class EmitSignal(QtWidgets.QWidget):
closeEmitApp = QtCore.pyqtSignal()
# 我们常见一个叫做closeEmitApp()的新信号。在鼠标按下时产生。
def __init__(self):
super(EmitSignal, self).__init__()
self.setWindowTitle("发射信号演示程序")
self.resize(250, 150)
self.closeEmitApp.connect(self.close)
# 吧自定义的信号closeEmitApp()与槽函数close()连接起来
def mousePressEvent(self, QMouseEvent):
self.closeEmitApp.emit()
# 通过信号变量的emit()方法来发射一个信号
app = QtWidgets.QApplication(sys.argv)
es = EmitSignal()
es.show()
sys.exit(app.exec_())
第九个程序: