在 pyqt 中选择单选按钮时更改行编辑的文本



我有两个使用 qt 设计器制作的形式radioButtons,我现在正在用 pyqt 编程。 我希望在选择radioButton 1 时将 lineEdit 的文本更改为"无线电 1",在选择radioButton 2 时将 的文本更改为"无线电 2"。 我怎样才能实现这一点?

下面是一个简单的例子。每个QRadioButton都连接到它自己的功能。您可以将它们连接到同一个功能并管理通过它发生的情况,但我认为最好演示信号和插槽的工作原理。

有关更多信息,请查看 PyQt4 文档,了解新样式信号和插槽。如果将多个信号连接到同一个插槽,有时使用 QObject.sender() 方法很有用,尽管在QRadioButton的情况下,检查所需按钮的 .isChecked(( 方法可能更容易。

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_())  

相关内容

  • 没有找到相关文章

最新更新