PySide2基础篇(三)——QPushButton运用
前言:
阅读这篇文章我能学到什么?
按钮是对话框应用程序常用的控件之一,这篇文章介绍QPushButton按钮控件的简单用法,如果你想快速上手就请阅读这篇文章。
——如果你觉得这是一篇不错的博文,希望你能给一个小小的赞,感谢您的支持。
1 创建一个按钮
按钮是对话框交互过程中最常用的控件之一,PySide2为我们提供了一个类PushButton
用于生成按钮。下面我们尝试示例化它创建一个按钮控件。
代码示例:
from PySide2.QtWidgets import QApplication, QPushButton
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.show()
app.exec_()
运行结果:
给构造函数传入的字符串"初始文本"
会在按钮上显示,若不想显示任何文本可将参数留空。如果后续想要修改按钮显示的文本内容可调用setText()
函数进行文本内容修改。
代码示例:
from PySide2.QtWidgets import QApplication, QPushButton
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.setText("修改文本") #修改文本内容
PushButton.show()
app.exec_()
运行结果:
2 给按钮添加点击事件
点击按钮必然会引起程序执行一些动作,这些动作是由开发者自己定义的,实现形式通常都是利用回调函数形式。在PySide2中有Slot
即插槽的概念,其实就是装饰器(如果对装饰器不了解的可以参考我的python3高级篇教程,有详细介绍装饰器)。
代码示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.clicked.connect(PressButton)
PushButton.show()
app.exec_()
运行结果:
每次点击后释放按键都会去调用PressButton
函数,该函数的功能就是打印一串字符串"Hello World"
。
3 个性化按钮
因为是基础篇,这里只介绍一些基础的设置。
3.1 给按钮添加图标
和QLabel
类似,既可以给按钮添加像素图QPixmap
和可以添加图标QIcon
。
代码示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
from PySide2.QtGui import QPixmap
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
PixMap = QPixmap(".\png\PushButton.png")
PushButton = QPushButton(PixMap, "初始文本")
PushButton.clicked.connect(PressButton)
PushButton.show()
app.exec_()
运行结果:
可以看到同时显示了像素图和文本内容。我们再尝试添加图标试试。
代码示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
from PySide2.QtGui import QIcon
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
Icon = QIcon(".\png\PushButton.ico")
PushButton = QPushButton(Icon, "初始文本")
PushButton.clicked.connect(PressButton)
PushButton.show()
app.exec_()
运行结果:
3.2 给按钮设置背景色
很多控件都可以调用setStyleSheet
方法对外观进行设置,这里我们尝试通过它将按钮颜色修改为绿色。
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
from PySide2.QtGui import QPixmap
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.clicked.connect(PressButton)
PushButton.setStyleSheet("background-color:green")
PushButton.show()
app.exec_()
运行结果:
4 按钮的其他功能设置
4.1 菜单按钮
菜单按钮常运用于工具栏,它使得对具有特定功能的按键进行分类管理,节省界面空间。
代码示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtWidgets import QMenu
app = QApplication([])
PushButton = QPushButton("初始文本")
Menu = QMenu()
Menu.addAction("1")
Menu.addAction("2")
Menu.addAction("3")
PushButton.setMenu(Menu)
PushButton.show()
app.exec_()
运行结果:
4.2 失能按钮(置灰)
有时按钮之间具有一些逻辑,当你点了某个按钮之后,其他按钮需要将其失效,这时候就要让按钮暂时被“置灰”。
代码示例:
from PySide2.QtWidgets import QApplication, QPushButton
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.setEnabled(False)
PushButton.show()
app.exec_()
运行结果: