接下来我将给你详细讲解Python的PyQt5框架中如何使用单选按钮的工具提示。
什么是单选按钮(QRadioButton)?
单选按钮是一种基于Qt框架开发的控件,通常是用于在多个互斥的选项中进行选择的一种控件。每次只能选择其中的一项,与之相对的则是复选框(QCheckBox),可以选择多项。
在PyQt5中使用单选按钮
在PyQt5中,使用单选按钮非常简单,首先在代码中导入相应的模块:
from PyQt5.QtWidgets import QVBoxLayout, QRadioButton, QWidget, QToolTip
from PyQt5.QtCore import Qt
然后,我们可以在QWidget中定义一个垂直布局(QVBoxLayout),并在其中添加多个单选按钮(QRadioButton),代码如下:
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
rb1 = QRadioButton('Radio button 1', self)
vbox.addWidget(rb1)
rb2 = QRadioButton('Radio button 2', self)
vbox.addWidget(rb2)
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('QRadioButton')
self.show()
然后,我们可以为每个单选按钮设置不同的工具提示(QToolTip),以便在用户将鼠标悬停在单选按钮上时,显示相应的提示信息。代码如下:
rb1.setToolTip('This is radio button 1')
rb2.setToolTip('This is radio button 2')
示例
这里我提供两个使用单选按钮工具提示的例子:
示例1:根据单选按钮让窗口显示不同的文本
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
rb1 = QRadioButton('Option 1', self)
vbox.addWidget(rb1)
rb2 = QRadioButton('Option 2', self)
vbox.addWidget(rb2)
self.setLayout(vbox)
rb1.setToolTip('Select Option 1')
rb2.setToolTip('Select Option 2')
rb1.setChecked(True)
rb1.toggled.connect(lambda: self.btnstate(rb1))
rb2.toggled.connect(lambda: self.btnstate(rb2))
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QRadioButton')
self.show()
def btnstate(self, btn):
if btn.text() == "Option 1":
if btn.isChecked() == True:
print("Option 1 is selected")
self.setWindowTitle("Option 1")
if btn.text() == "Option 2":
if btn.isChecked() == True:
print("Option 2 is selected")
self.setWindowTitle("Option 2")
示例2:根据单选按钮让窗口显示不同的图像
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QWidget, QHBoxLayout, QRadioButton, QApplication, QLabel, QVBoxLayout
class Example(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 300)
self.setMinimumSize(300, 300)
self.MaximumSize(300, 300)
self.initUI()
def initUI(self):
self.label = QLabel(self)
self.label.setFixedSize(280, 280)
hbox_layout = QHBoxLayout()
hbox_layout.addWidget(self.label)
vbox_layout = QVBoxLayout()
option_1_rbutton = QRadioButton('Option 1')
option_1_rbutton.toggled.connect(lambda: self.set_image(option_1_rbutton))
option_2_rbutton = QRadioButton('Option 2')
option_2_rbutton.toggled.connect(lambda: self.set_image(option_2_rbutton))
vbox_layout.addWidget(option_1_rbutton)
vbox_layout.addWidget(option_2_rbutton)
hbox_layout.addLayout(vbox_layout)
self.setLayout(hbox_layout)
def set_image(self, button):
if button.isChecked() == True:
if button.text() == "Option 1":
self.label.setPixmap(QPixmap('image_1.png'))
if button.text() == "Option 2":
self.label.setPixmap(QPixmap('image_2.png'))
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Example()
window.show()
sys.exit(app.exec_())
至此,本篇攻略便讲解结束。以上是两个使用PyQt5的单选按钮工具提示的代码示例,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 单选按钮的工具提示 - Python技术站