[英]change text of lineEdit when a radio button is selected in pyqt
我有两个使用radioButtons
设计器制作的单选按钮,我现在正在 pyqt 中编程。 我希望在选择radioButton
lineEdit
文本更改为“radio 1”,在选择radioButton
2 时将文本更改为“radio 2”。 我怎样才能做到这一点?
这是一个简单的例子。 每个QRadioButton
都连接到它自己的 function。 您可以将它们都连接到同一个 function 并管理通过它发生的事情,但我认为最好演示信号和插槽的工作原理。
有关更多信息,请查看 PyQt4 文档以了解新样式信号和插槽。 如果将多个信号连接到同一个插槽,有时使用QObject
的.sender()
方法很有用,尽管在 QRadioButton 的情况下,只需检查所需按钮的QRadioButton
()方法可能更容易。
import sys
from PyQt4.QtGui import QApplication, QWidget, QVBoxLayout, \
QLineEdit, QRadioButton
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.widget_layout = QVBoxLayout()
self.radio1 = QRadioButton('Radio 1')
self.radio2 = QRadioButton('Radio 2')
self.line_edit = QLineEdit()
self.radio1.toggled.connect(self.radio1_clicked)
self.radio2.toggled.connect(self.radio2_clicked)
self.widget_layout.addWidget(self.radio1)
self.widget_layout.addWidget(self.radio2)
self.widget_layout.addWidget(self.line_edit)
self.setLayout(self.widget_layout)
def radio1_clicked(self, enabled):
if enabled:
self.line_edit.setText('Radio 1')
def radio2_clicked(self, enabled):
if enabled:
self.line_edit.setText('Radio 2')
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.