복붙노트

[PYTHON] 문자열에서 QpushButton을 누르면 QlineEdit에서 텍스트를 가져 오는 방법은 무엇입니까?

PYTHON

문자열에서 QpushButton을 누르면 QlineEdit에서 텍스트를 가져 오는 방법은 무엇입니까?

함수를 구현하려고합니다. 내 코드는 아래와 같습니다.

ObjectName 'host'라는 문자열을 사용하여 lineedit에 텍스트를 가져 오려면 사용자가 'connect'라는 이름의 푸시 버튼을 클릭하면 'shost'라고 말하고 싶습니다. 어떻게해야합니까? 나는 시도하고 실패했다. 이 기능을 어떻게 구현합니까?

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *


class Form(QDialog):
    def __init__(self, parent=None):
        super(Form, self).__init__(parent)

        le = QLineEdit()
        le.setObjectName("host")
        le.setText("Host")
        pb = QPushButton()
        pb.setObjectName("connect")
        pb.setText("Connect") 
        layout.addWidget(le)
        layout.addWidget(pb)
        self.setLayout(layout)

        self.connect(pb, SIGNAL("clicked()"),self.button_click)

        self.setWindowTitle("Learning")

    def button_click(self):
    #i want the text in lineedit with objectname 
    #'host' in a string say 'shost'. when the user click 
    # the pushbutton with name connect.How do i do it?
    # I tried and failed. How to implement this function?




app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()

이제 "button_click"함수를 어떻게 구현합니까? 방금 pyQt로 시작했습니다!

해결법

  1. ==============================

    1.첫 번째 제안은 Designer를 사용하여 GUI를 만드는 것입니다. 스스로 짜증나는 것은 시간이 많이 걸리고, 당신은 분명히 디자이너보다 더 많은 실수를 할 것입니다.

    첫 번째 제안은 Designer를 사용하여 GUI를 만드는 것입니다. 스스로 짜증나는 것은 시간이 많이 걸리고, 당신은 분명히 디자이너보다 더 많은 실수를 할 것입니다.

    올바른 추적을 돕기위한 PyQt 튜토리얼을 소개합니다. 목록의 첫 번째 항목은 시작해야하는 곳입니다.

    특정 클래스에 어떤 메소드가 사용 가능한지 알아내는 좋은 지침은 PyQt4 Class Reference입니다. 이 경우 QLineEdit를 검색하여 텍스트 메소드가 있는지 확인합니다.

    특정 질문에 답변하려면 다음을 수행하십시오.

    객체의 나머지 부분에서 GUI 요소를 사용할 수있게하려면 자체 앞에 붙이십시오.

    import sys
    from PyQt4.QtCore import SIGNAL
    from PyQt4.QtGui import QDialog, QApplication, QPushButton, QLineEdit, QFormLayout
    
    class Form(QDialog):
        def __init__(self, parent=None):
            super(Form, self).__init__(parent)
    
            self.le = QLineEdit()
            self.le.setObjectName("host")
            self.le.setText("Host")
    
            self.pb = QPushButton()
            self.pb.setObjectName("connect")
            self.pb.setText("Connect") 
    
            layout = QFormLayout()
            layout.addWidget(self.le)
            layout.addWidget(self.pb)
    
            self.setLayout(layout)
            self.connect(self.pb, SIGNAL("clicked()"),self.button_click)
            self.setWindowTitle("Learning")
    
        def button_click(self):
            # shost is a QString object
            shost = self.le.text()
            print shost
    
    
    app = QApplication(sys.argv)
    form = Form()
    form.show()
    app.exec_()
    
  2. ==============================

    2.개체 이름은 그다지 중요하지 않습니다. 당신이 집중해야 할 것은 lineedit 객체 (le)와 푸시 버튼 객체 (pb)를 저장하는 변수입니다.

    개체 이름은 그다지 중요하지 않습니다. 당신이 집중해야 할 것은 lineedit 객체 (le)와 푸시 버튼 객체 (pb)를 저장하는 변수입니다.

    QObject(self.pb, SIGNAL("clicked()"), self.button_clicked)
    
    def button_clicked(self):
      self.le.setText("shost")
    

    나는 이것이 당신이 원하는 것이라고 생각합니다. 나는 당신의 질문을 올바르게 받았으면 좋겠다 :)

  3. from https://stackoverflow.com/questions/3016974/how-to-get-text-in-qlineedit-when-qpushbutton-is-pressed-in-a-string by cc-by-sa and MIT license