簡體   English   中英

在 pyqt 中選擇單選按鈕時更改 lineEdit 的文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM