Python中PyQt5PySide2的按钮控件使⽤实例
在之前的⽂章中,我们介绍了PyQt5和PySide2中主窗⼝控件MainWindow的使⽤、窗⼝控件的4中基础布局管理。从本篇开始,我们来了解⼀下PyQt5和PySide2中基础控件的使⽤,其中包括:
按钮控件;
⽂本输⼊控件;
单选控件;
⽂本标签控件;
多选控件;
列表控件;
等图形界⾯开发中常⽤的控件,今天我们来介绍按钮控件。
⽂章⽬录
直接实例化⼀个带⽂本的按钮控件
不带参数创建的按钮控件
三、获取按钮控件的点击事件
⼀、创建⼀个按钮控件
在PyQt5/PySide2中,按钮控件名为QPushButton(),其位于QtWidgets⼦模块之下。在创建按钮控件之前,我们先来创建⼀个包含布局层的图形界⾯主窗⼝,作为按钮控件的容器,代码如下所⽰:
# coding:utf-8
from PyQt5 import QtWidgets
import sys
class ButtonApp(QtWidgets.QMainWindow):
def __init__(self):
'''
州的先⽣ zmister
'''
super().__init__()
self.setWindowTitle("Qt For Python按钮控件 | 州的先⽣")
self.setFixedSize(500,200) # 设置窗⼝固定⼤⼩
self.main_widget = QtWidgets.QWidget()
self.main_layout = QtWidgets.QVBoxLayout()
self.main_widget.setLayout(self.main_layout)
self.setCentralWidget(self.main_widget)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
gui = ButtonApp()
gui.show()
<_())
运⾏上述代码,我们会得到⼀个如下图所⽰的图形界⾯窗⼝,如下图所⽰:
我们使⽤setFixedSize()⽅法设置了窗⼝的固定⼤⼩,然后设置了窗⼝内控件的布局为垂直布局。下⾯,我们往⾥⾯添加按钮控件。
直接实例化⼀个带⽂本的按钮控件
我们可以直接实例化⼀个带字符串参数的QPushButton()来创建⼀个按钮,例如:
self.btn_1 = QtWidgets.QPushButton("按钮⼀")
我们将其添加到上⾯创建的主窗⼝中,代码如下所⽰:
# coding:utf-8
from PyQt5 import QtWidgets
import sys
class ButtonApp(QtWidgets.QMainWindow):
def __init__(self):
'''
州的先⽣ zmister
'''
super().__init__()
self.setWindowTitle("Qt For Python按钮控件 | 州的先⽣")
self.setFixedSize(500,200) # 设置窗⼝固定⼤⼩
self.main_widget = QtWidgets.QWidget()
self.main_layout = QtWidgets.QVBoxLayout()
self.main_widget.setLayout(self.main_layout)
self.btn_1 = QtWidgets.QPushButton("按钮⼀")
self.main_layout.addWidget(self.btn_1)
self.setCentralWidget(self.main_widget)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
gui = ButtonApp()
gui.show()
<_())
运⾏上述代码,可以得到⼀个带有⼀个按钮的主窗⼝图形,如下图所⽰:
不带参数创建的按钮控件
如果我们不带字符串参数给QPushButton(),创建的就是⼀个空⽩的按钮,代码如下所⽰:from PyQt5
import QtWidgets
import sys
class ButtonApp(QtWidgets.QMainWindow):
def __init__(self):
'''
州的先⽣ zmister
'''
super().__init__()
self.setWindowTitle("Qt For Python按钮控件 | 州的先⽣")
self.setFixedSize(500, 200) # 设置窗⼝固定⼤⼩
self.main_widget = QtWidgets.QWidget()
self.main_layout = QtWidgets.QVBoxLayout()
self.main_widget.setLayout(self.main_layout)
self.btn_1 = QtWidgets.QPushButton("按钮⼀")
self.btn_2 = QtWidgets.QPushButton()
self.main_layout.addWidget(self.btn_1)
self.main_layout.addWidget(self.btn_2)
self.setCentralWidget(self.main_widget)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
gui = ButtonApp()
gui.show()
<_())
运⾏上述代码,我们会得到⼀个含有两个按钮的图形界⾯窗⼝,如下图所⽰:
⼆、设置按钮控件
设置按钮⽂本
按钮创建之后,我们可以对其进⾏设置,⽐如上⾯创建的空⽩按钮,借助其setText()⽅法,可以设置按钮上的⽂本,代码如下所⽰:
改变button按钮的形状self.btn_2.setText("按钮⼆")
将其添加到第⼆个按钮的创建代码之下,运⾏新的代码,可以看到,主窗⼝中的第⼆个按钮上已经有了⽂字,如下图所⽰:
设置按钮图标
除了设置⽂本,我们还能在按钮中设置⼀个图标,使⽤其setIcon()⽅法,对其传⼊⼀个QIcon()对象,代码如下所⽰:
from PyQt5 import QtWidgets,QtGui
import sys
class ButtonApp(QtWidgets.QMainWindow):
def __init__(self):
'''
州的先⽣ zmister
'''
super().__init__()
self.setWindowTitle("Qt For Python按钮控件 | 州的先⽣")
self.setFixedSize(500, 200) # 设置窗⼝固定⼤⼩
self.main_widget = QtWidgets.QWidget()
self.main_layout = QtWidgets.QVBoxLayout()
self.main_widget.setLayout(self.main_layout)
self.btn_1 = QtWidgets.QPushButton("按钮⼀")
self.btn_2 = QtWidgets.QPushButton()
self.btn_2.setText("按钮⼆")
self.btn_3 = QtWidgets.QPushButton("按钮三") # 创建按钮3
icon_img = QtGui.QIcon("./icon.png") # 实例化⼀个QIcon对象
self.btn_3.setIcon(icon_img) # 设置按钮的图标
self.main_layout.addWidget(self.btn_1)
self.main_layout.addWidget(self.btn_2)
self.main_layout.addWidget(self.btn_3)
self.setCentralWidget(self.main_widget)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
gui = ButtonApp()
gui.show()
<_())
在上⾯的代码中,我们创建了按钮3,然后实例化了⼀个QIcon()对象,最后调⽤setIcon()⽅法,参数为刚刚实例化的QIcon()对象。运⾏上述代码,我们可以看到,按钮3上有⼀个图标,如下图所⽰:
设置按钮的状态
除此之外,我们可以通过setEnabled()⽅法,设置按钮的状态,传⼊值为True时,表⽰按钮可⽤,传⼊值为False时,表⽰按钮禁⽤,代码如下所⽰:
from PyQt5 import QtWidgets,QtGui
import sys
class ButtonApp(QtWidgets.QMainWindow):
def __init__(self):
'''
州的先⽣ zmister
'''
super().__init__()
self.setWindowTitle("Qt For Python按钮控件 | 州的先⽣")
self.setFixedSize(500, 200) # 设置窗⼝固定⼤⼩
self.main_widget = QtWidgets.QWidget()
self.main_layout = QtWidgets.QVBoxLayout()
self.main_widget.setLayout(self.main_layout)
self.btn_1 = QtWidgets.QPushButton("按钮⼀")
self.btn_1.setEnabled(False)
self.btn_2 = QtWidgets.QPushButton()
self.btn_2.setText("按钮⼆")
self.btn_3 = QtWidgets.QPushButton("按钮三") # 创建按钮3
icon_img = QtGui.QIcon("./icon.png") # 实例化⼀个QIcon对象
self.btn_3.setIcon(icon_img) # 设置按钮的图标
self.main_layout.addWidget(self.btn_1)
self.main_layout.addWidget(self.btn_2)
self.main_layout.addWidget(self.btn_3)
self.setCentralWidget(self.main_widget)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
gui = ButtonApp()
gui.show()
<_())
运⾏上述代码,可以发现主窗⼝中的按钮1的颜⾊不⼀样了,因为其已经不能点击了,如下图所⽰:
设置按钮的⼤⼩
如同我们在主窗⼝中使⽤setFixedSize()⽅法设置主窗⼝的窗⼝⼤⼩,我们可以使⽤这个⽅法设置按钮的固定⼤⼩,代码如下所⽰:
self.btn_3.setFixedSize(80,80) # 设置按钮的固定⼤⼩
最后运⾏代码,我们可以发现,主窗⼝中的按钮3的形状已经变了,如下图所⽰:
三、获取按钮控件的点击事件
对于按钮来说,最常见的还是点击事件,在PyQt5和PySide2中,已经内置了点击事件,我们可以直接对其进⾏调⽤,代码如下所⽰:
from PyQt5 import QtWidgets,QtGui
import sys
class ButtonApp(QtWidgets.QMainWindow):
def __init__(self):
'''
州的先⽣ zmister
'''
super().__init__()
self.setWindowTitle("Qt For Python按钮控件 | 州的先⽣")
self.setFixedSize(500, 200) # 设置窗⼝固定⼤⼩
self.main_widget = QtWidgets.QWidget()
self.main_layout = QtWidgets.QVBoxLayout()
self.main_widget.setLayout(self.main_layout)
self.btn_1 = QtWidgets.QPushButton("按钮⼀")
self.btn_1.setEnabled(False)
self.btn_2 = QtWidgets.QPushButton()
self.btn_2.setText("按钮⼆")
self.btn_3 = QtWidgets.QPushButton("按钮三") # 创建按钮3
icon_img = QtGui.QIcon("./icon.png") # 实例化⼀个QIcon对象
self.btn_3.setIcon(icon_img) # 设置按钮的图标
self.btn_3.setFixedSize(80,80) # 设置按钮的固定⼤⼩
self.btn_t(self.clicks) # 连接点击信号到响应⽅法
self.main_layout.addWidget(self.btn_1)
self.main_layout.addWidget(self.btn_2)
self.main_layout.addWidget(self.btn_3)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论