提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、学习内容
1.1 QLCDNumber和QDial(QSlider)
1.2 重写键盘事件处理函数(keyPressEvent)
1.2.1 获取键盘上的值(Qt.Key_Up)
1.2.2 设置qlabel显示的文字(self.lab.setText(‘↓’))
1.3 重写鼠标事件处理函数并绘图
1.3.1 打开持续跟踪鼠标(不打开的话,需要点击鼠标坐标才会进入鼠标相应函数)
self.setMouseTracking(True)
1.3.2 鼠标移动函数
def mouseMoveEvent(self, event):
1.3.3 绘图相应函数(paintEvent)
绘图控件(QPainter)
1.3.3.1 在界面中绘制直线
q.drawLine(0, 0, self.pos.x(), self.pos.y())
1.4 定位事件发送者
1.4.1 定位事件发送者:self.sender()
1.4.2 多个控件触发同一个槽函数:
1.5 发送自定义信号
emit()
bt1.clicked.connect(self.buttonclicked)
bt2.clicked.connect(self.buttonclicked)
bt3.clicked.connect(self.buttonclicked)
二、全部代码
1.1 lcd和qdial(qslider)
# coding=utf-8
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QDial, QApplication, QSlider)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
# 初始化一个lcd
lcd = QLCDNumber(self)
# 初始化一个圆形范围控件
# dial = QDial(self)
dial = QSlider(self)
# 初始化窗口的位置和大小
self.setGeometry(300, 300, 350, 250)
# 初始化窗口的标题
self.setWindowTitle('学点编程吧')
# 初始化lcd和圆形范围控件的位置和大小
lcd.setGeometry(100, 50, 150, 60)
dial.setGeometry(120, 120, 100, 100)
# 通过槽函数建立圆形范围控件和lcd之间的关系
dial.valueChanged.connect(lcd.display)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
1.2 重写键盘相应函数
# coding=utf-8
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QApplication, QLabel)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUi()
def initUi(self):
# 设置窗口的位置和大小
self.setGeometry(300, 300, 350, 250)
# 设置窗口的标题
self.setWindowTitle('学点编程吧')
# 初始化一个qlabel控件
self.lab = QLabel('方向', self)
# 设置label空间的位置和大小
self.lab.setGeometry(150, 100, 50, 50)
self.show()
# 重写键盘相应函数
def keyPressEvent(self, e):
print(e.key())
if e.key() == Qt.Key_Up:
self.lab.setText('↑')
elif e.key() == Qt.Key_Down:
self.lab.setText('↓')
elif e.key() == Qt.Key_Left:
self.lab.setText('←')
else:
self.lab.setText('→')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
1.3 重写鼠标控制函数并绘图
# coding=utf-8
import sys
from PyQt5.QtWidgets import (QApplication, QLabel, QWidget)
from PyQt5.QtGui import QPainter, QColor, QPen
class Example(QWidget):
distance_from_center = 0
def __init__(self):
super().__init__()
self.initUI()
# 打开鼠标跟踪
self.setMouseTracking(True)
def initUI(self):
# 设置窗口位置和大小
self.setGeometry(200, 200, 1000, 500)
# 设置窗口标题
self.setWindowTitle('学点编程吧')
# 初始化一个label空间
self.label = QLabel(self)
# 调整label空间的大小
self.label.resize(500, 40)
self.show()
self.pos = None
# 重写鼠标移动响应函数
def mouseMoveEvent(self, event):
distance_from_center = round(((event.y() - 250) ** 2 + (event.x() - 500) ** 2) ** 0.5)
self.label.setText(
'坐标: ( x: %d ,y: %d )' % (event.x(), event.y()) + " 离中心点距离: " + str(distance_from_center))
self.pos = event.pos()
self.update()
# 绘制直线
def paintEvent(self, event):
if self.pos:
q = QPainter(self)
q.drawLine(0, 0, self.pos.x(), self.pos.y())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())# coding=utf-8
import sys
from PyQt5.QtWidgets import (QApplication, QLabel, QWidget)
from PyQt5.QtGui import QPainter, QColor, QPen
class Example(QWidget):
distance_from_center = 0
def __init__(self):
super().__init__()
self.initUI()
# 打开鼠标跟踪
self.setMouseTracking(True)
def initUI(self):
# 设置窗口位置和大小
self.setGeometry(200, 200, 1000, 500)
# 设置窗口标题
self.setWindowTitle('学点编程吧')
# 初始化一个label空间
self.label = QLabel(self)
# 调整label空间的大小
self.label.resize(500, 40)
self.show()
self.pos = None
# 重写鼠标移动响应函数
def mouseMoveEvent(self, event):
distance_from_center = round(((event.y() - 250) ** 2 + (event.x() - 500) ** 2) ** 0.5)
self.label.setText(
'坐标: ( x: %d ,y: %d )' % (event.x(), event.y()) + " 离中心点距离: " + str(distance_from_center))
self.pos = event.pos()
self.update()
# 绘制直线
def paintEvent(self, event):
if self.pos:
q = QPainter(self)
q.drawLine(0, 0, self.pos.x(), self.pos.y())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())# coding=utf-8
import sys
from PyQt5.QtWidgets import (QApplication, QLabel, QWidget)
from PyQt5.QtGui import QPainter, QColor, QPen
class Example(QWidget):
distance_from_center = 0
def __init__(self):
super().__init__()
self.initUI()
# 打开鼠标跟踪
self.setMouseTracking(True)
def initUI(self):
# 设置窗口位置和大小
self.setGeometry(200, 200, 1000, 500)
# 设置窗口标题
self.setWindowTitle('学点编程吧')
# 初始化一个label空间
self.label = QLabel(self)
# 调整label空间的大小
self.label.resize(500, 40)
self.show()
self.pos = None
# 重写鼠标移动响应函数
def mouseMoveEvent(self, event):
distance_from_center = round(((event.y() - 250) ** 2 + (event.x() - 500) ** 2) ** 0.5)
self.label.setText(
'坐标: ( x: %d ,y: %d )' % (event.x(), event.y()) + " 离中心点距离: " + str(distance_from_center))
self.pos = event.pos()
self.update()
# 绘制直线
def paintEvent(self, event):
if self.pos:
q = QPainter(self)
q.drawLine(0, 0, self.pos.x(), self.pos.y())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
1.4 定位事件发送者
#coding=utf-8
import sys
from PyQt5.QtWidgets import (QApplication, QMessageBox, QWidget, QPushButton)
from random import randint
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(200, 200, 300, 300)
self.setWindowTitle('学点编程吧')
bt1 = QPushButton('剪刀',self)
bt1.setGeometry(30,180,50,50)
bt2 = QPushButton('石头',self)
bt2.setGeometry(100,180,50,50)
bt3 = QPushButton('布',self)
bt3.setGeometry(170,180,50,50)
bt1.clicked.connect(self.buttonclicked)
bt2.clicked.connect(self.buttonclicked)
bt3.clicked.connect(self.buttonclicked)
self.show()
def buttonclicked(self):
computer = randint(1,3)
player = 0
sender = self.sender()
if sender.text() == '剪刀':
player = 1
elif sender.text() == '石头':
player = 2
else:
player = 3
if player == computer:
QMessageBox.about(self, '结果', '平手')
elif player == 1 and computer == 2:
QMessageBox.about(self, '结果', '电脑:石头,电脑赢了!')
elif player == 2 and computer == 3:
QMessageBox.about(self, '结果', '电脑:布,电脑赢了!')
elif player == 3 and computer == 1:
QMessageBox.about(self,'结果','电脑:剪刀,电脑赢了!')
elif computer == 1 and player == 2:
QMessageBox.about(self,'结果','电脑:剪刀,玩家赢了!')
elif computer == 2 and player == 3:
QMessageBox.about(self,'结果','电脑:石头,玩家赢了!')
elif computer == 3 and player == 1:
QMessageBox.about(self,'结果','电脑:布,玩家赢了!')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
1.5 自定义发送信号
#coding=utf-8
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QMessageBox)
from PyQt5.QtCore import (pyqtSignal, QObject)
class Signal(QObject):
showmouse = pyqtSignal()
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(200, 200, 300, 300)
self.setWindowTitle('学点编程吧')
self.s = Signal()
self.s.showmouse.connect(self.about)
self.show()
def about(self):
QMessageBox.about(self,'鼠标','你点鼠标了吧!')
def mousePressEvent(self, e):
self.s.showmouse.emit()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。