- QPushButton复合实践
主要内容 #
完成效果 #
完成本节课程,能学会在窗口应用程序上新增按钮,并且当按下按钮时,按钮的名称在QLineEdit上显示。
效果如下:
收获 #
学习完本节内容,我们会了解QPushButton的复合实践具体步骤,实现控件间的信息传递等进阶操作。
1.QPushButton复合实践 #
在本复合实践中,需要在窗口应用程序中添加按钮,并通过信号槽机制实现当按下按钮时,按钮的名称在QLineEdit上显示
以下是代码实现示例:
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QLineEdit, QLabel
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.edit = QLineEdit("输入框", self) # 定义一个编辑框控件
self.edit.move(50, 100) # 移动编辑框到窗口坐标(100, 100)
self.button = QPushButton('Dashima',self) # 创建一个按钮并添加文本
self.button.move(50,50) # 移动位置
# 点击鼠标点击按钮时触发clicked信号,并该信号连接到槽函数showText
self.button.clicked.connect(self.showText)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QPushButton复合实践')
self.show()
def showText(self): # 槽函数
self.edit.setText(self.button.text()) # 将按钮上的文本显示到编辑框上
app = QApplication(sys.argv) # 创建应用程序
ex = Example() # 创建窗口对象
sys.exit(app.exec_()) # 设置关闭窗口后结束进程
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QLineEdit, QLabel
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.edit = QLineEdit("输入框", self) # 定义一个编辑框控件
self.edit.move(50, 100) # 移动编辑框到窗口坐标(100, 100)
self.button = QPushButton('Dashima',self) # 创建一个按钮并添加文本
self.button.move(50,50) # 移动位置
# 点击鼠标点击按钮时触发clicked信号,并该信号连接到槽函数showText
self.button.clicked.connect(self.showText)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QPushButton复合实践')
self.show()
def showText(self): # 槽函数
self.edit.setText(self.button.text()) # 将按钮上的文本显示到编辑框上
app = QApplication(sys.argv) # 创建应用程序
ex = Example() # 创建窗口对象
sys.exit(app.exec_()) # 设置关闭窗口后结束进程
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QLineEdit, QLabel class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.edit = QLineEdit("输入框", self) # 定义一个编辑框控件 self.edit.move(50, 100) # 移动编辑框到窗口坐标(100, 100) self.button = QPushButton('Dashima',self) # 创建一个按钮并添加文本 self.button.move(50,50) # 移动位置 # 点击鼠标点击按钮时触发clicked信号,并该信号连接到槽函数showText self.button.clicked.connect(self.showText) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('QPushButton复合实践') self.show() def showText(self): # 槽函数 self.edit.setText(self.button.text()) # 将按钮上的文本显示到编辑框上 app = QApplication(sys.argv) # 创建应用程序 ex = Example() # 创建窗口对象 sys.exit(app.exec_()) # 设置关闭窗口后结束进程
拓展练习:
1、制作3个按钮(QPushButton),每个按钮实现如下功能:
当点击按钮1时,显示turtle画正方形的图形
当点击按钮2时,显示turtle画三角形的图形
当点击按钮3时,显示turtle画圆形的图形
2、在练习1的基础上再添加一个按钮,点击改按钮时,显示turtle画风车的图形(风车代码请参考第二期第040课)
小结 #
习题 #
- 习题1:类似地,将QLineEdit改为QLabel,点击按钮时显示按钮文本在QLabel上。