pygtk-B1 ()은 하나의 인수 만 사용합니다 (2 개 제공됨).

자틴 카우 샬

PyGTK로 작업 중이며 GUI의 신호 (Glade를 사용하여 XML로 작성된 하나의 버튼)를 함수에 바인딩하려고하면 다음 오류가 발생합니다.

TypeError: B1() takes exactly 1 argument (2 given)

다음은 내 Python 코드입니다.

#!/usr/bin/python2

import pygtk
pygtk.require('2.0')
from gi.repository import Gtk as gtk

class Main():
    def __init__(self):
        self.builder = gtk.Builder()
        self.builder.add_from_file('/home/jatin/button.glade')
        self.MainWindow = self.builder.get_object('GW1')
        if self.MainWindow:
            self.MainWindow.connect("destroy", gtk.main_quit)

        dic = {
            'on_B1_clicked' : self.B1,
            'on_B2_clicked' : self.B2,
            'on_B3_clicked' : self.B3
        }
        self.builder.connect_signals(dic)
    def B1(self):
        return('ham')

    def B2(self):
        return('ham')

    def B3(self):
        return('ham')


M = Main()
gtk.main()

다음은 내 Glade 파일입니다.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
  <requires lib="gtk+" version="3.20"/>
  <object class="GtkWindow" id="GW1">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <child>
      <object class="GtkBox" id="GB1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="orientation">vertical</property>
        <child>
          <object class="GtkButton" id="B1">
            <property name="label" translatable="yes">button</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
            <signal name="clicked" handler="on_B1_clicked" swapped="no"/>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkButton" id="B2">
            <property name="label" translatable="yes">button</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <object class="GtkButton" id="B3">
            <property name="label" translatable="yes">button</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">2</property>
          </packing>
        </child>
      </object>
    </child>
    <child>
      <placeholder/>
    </child>
  </object>
</interface>

흥미로운 부분은 전달 된 인수의 수를 변경하면 오류 메시지가 다음과 같이 변경된다는 것입니다.

인수가없는 경우 :

TypeError: B1() takes no arguments (2 given)

2 개의 인수를 사용하면 오류가 발생하지 않지만 함수는 예상대로 작동하지 않습니다. 3 개 이상의 인수 포함 :

TypeError: B1() takes 3 arguments (2 given)
프 토마토

각 신호에는 연결된 신호 핸들러로 전달되는 특정 인수가 있습니다. 문서에서 그들이 무엇인지 확인하십시오. 예를 들어 Gtk.Buttonclicked신호 가 버튼 자체를 인수로받는 것을 볼 수 있습니다 .

신호 처리기의 인수 개수는 이러한 인수와 일치해야 self하며 메서드 인 경우 포함 해야합니다. 따라서 올바른 정의 B1는 다음과 같습니다.

def B1(self, button):

어떤 경우에는 시그널 핸들러로 전달되는 값에 대해 신경 쓰지 않을 수도 있습니다. 이 경우 다음과 같이 할 수 있습니다.

def B1(self, *args):

이것은 여기 문서에 설명 되어 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PyGTK 함수는 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

TypeError : __call __ ()은 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

TypeError : __call __ ()은 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

TypeError : join ()은 정확히 하나의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

tornado.wsgi.WSGIApplication 문제 : __call__은 정확히 3 개의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

get_success_url ()은 정확히 3 개의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

pyspark-TypeError : count ()는 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

setupUi ()는 정확히 2 개의 인수를 사용합니다 (1 개 제공됨).

분류에서Dev

WebApp2 : TypeError : get ()은 정확히 1 개의 인수 (2 개 제공)를 사용합니다.

분류에서Dev

오류 : TypeError : translate ()는 하나의 인수를 사용합니다 (2 개 제공됨).

분류에서Dev

메서드는 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다

분류에서Dev

SQLAlchemy 테이블 속성은 정확히 2 개의 인수를 사용합니다 (1 개 지정됨).

분류에서Dev

파이썬 "열기"파일에 'TypeError : 함수가 최소한 2 개의 인수를 사용합니다 (1 개 제공됨)'

분류에서Dev

Python 2.7 __init __ ()는 정확히 2 개의 인수를 사용합니다 (3 개 제공됨).

분류에서Dev

mkdocs-pandoc TypeError : _split_row ()는 정확히 2 개의 인수를 사용합니다 (3 개 제공됨).

분류에서Dev

Python 2.7 TypeError : __init __ ()는 정확히 4 개의 인수를 사용합니다 (1 개 제공됨).

분류에서Dev

Odoo 10.0에서 "Log_In ()은 정확히 3 개의 인수 (2 개 제공)를 사용합니다."

분류에서Dev

C ++의 이니셜 라이저 목록에서 제공된 크기로 개인 멤버 배열을 만들려고합니다 (<vector> 사용은 금지됨)

분류에서Dev

예기치 않은 오류 : replace ()는 2 개의 위치 인수를 사용하지만 3 개가 제공되었습니다.

분류에서Dev

sklearn의 파이프 라인에서 LabelEncoder를 사용하면 다음과 같은 결과를 얻을 수 있습니다. fit_transform은 2 개의 위치 인수를 사용하지만 3 개는 제공되었습니다.

분류에서Dev

AWS Lambda [ERROR] 함수가 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다.

분류에서Dev

django-nonrel 설정 오류 TypeError : __init __ ()는 정확히 1 개의 인수 (2 개 제공)를 사용합니다.

분류에서Dev

tensorflow MNIST fully_connected_feed.py 실패 : range ()는 최소 2 개의 인수 (1 개 제공)를 사용합니다.

분류에서Dev

pygrametl CSVSource TypeError : init ()는 최소 2 개의 인수 (1 개 제공)를 사용합니다.

분류에서Dev

TypeError : structure_similarity ()는 2 개의 위치 인수를 사용하지만 8 개가 제공되었습니다.

분류에서Dev

TypeError : structure_similarity ()는 2 개의 위치 인수를 사용하지만 8 개가 제공되었습니다.

분류에서Dev

/ users / login / __init __ ()의 TypeError는 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다.

분류에서Dev

Keras 레이어 빌드 오류 : build ()가 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다.

분류에서Dev

Pandas groupby 열로 집계하면 sum ()은 람다를 사용하여 개수 만 제공합니다.

Related 관련 기사

  1. 1

    PyGTK 함수는 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

  2. 2

    TypeError : __call __ ()은 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

  3. 3

    TypeError : __call __ ()은 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

  4. 4

    TypeError : join ()은 정확히 하나의 인수를 사용합니다 (2 개 제공됨).

  5. 5

    tornado.wsgi.WSGIApplication 문제 : __call__은 정확히 3 개의 인수를 사용합니다 (2 개 제공됨).

  6. 6

    get_success_url ()은 정확히 3 개의 인수를 사용합니다 (2 개 제공됨).

  7. 7

    pyspark-TypeError : count ()는 정확히 1 개의 인수를 사용합니다 (2 개 제공됨).

  8. 8

    setupUi ()는 정확히 2 개의 인수를 사용합니다 (1 개 제공됨).

  9. 9

    WebApp2 : TypeError : get ()은 정확히 1 개의 인수 (2 개 제공)를 사용합니다.

  10. 10

    오류 : TypeError : translate ()는 하나의 인수를 사용합니다 (2 개 제공됨).

  11. 11

    메서드는 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다

  12. 12

    SQLAlchemy 테이블 속성은 정확히 2 개의 인수를 사용합니다 (1 개 지정됨).

  13. 13

    파이썬 "열기"파일에 'TypeError : 함수가 최소한 2 개의 인수를 사용합니다 (1 개 제공됨)'

  14. 14

    Python 2.7 __init __ ()는 정확히 2 개의 인수를 사용합니다 (3 개 제공됨).

  15. 15

    mkdocs-pandoc TypeError : _split_row ()는 정확히 2 개의 인수를 사용합니다 (3 개 제공됨).

  16. 16

    Python 2.7 TypeError : __init __ ()는 정확히 4 개의 인수를 사용합니다 (1 개 제공됨).

  17. 17

    Odoo 10.0에서 "Log_In ()은 정확히 3 개의 인수 (2 개 제공)를 사용합니다."

  18. 18

    C ++의 이니셜 라이저 목록에서 제공된 크기로 개인 멤버 배열을 만들려고합니다 (<vector> 사용은 금지됨)

  19. 19

    예기치 않은 오류 : replace ()는 2 개의 위치 인수를 사용하지만 3 개가 제공되었습니다.

  20. 20

    sklearn의 파이프 라인에서 LabelEncoder를 사용하면 다음과 같은 결과를 얻을 수 있습니다. fit_transform은 2 개의 위치 인수를 사용하지만 3 개는 제공되었습니다.

  21. 21

    AWS Lambda [ERROR] 함수가 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다.

  22. 22

    django-nonrel 설정 오류 TypeError : __init __ ()는 정확히 1 개의 인수 (2 개 제공)를 사용합니다.

  23. 23

    tensorflow MNIST fully_connected_feed.py 실패 : range ()는 최소 2 개의 인수 (1 개 제공)를 사용합니다.

  24. 24

    pygrametl CSVSource TypeError : init ()는 최소 2 개의 인수 (1 개 제공)를 사용합니다.

  25. 25

    TypeError : structure_similarity ()는 2 개의 위치 인수를 사용하지만 8 개가 제공되었습니다.

  26. 26

    TypeError : structure_similarity ()는 2 개의 위치 인수를 사용하지만 8 개가 제공되었습니다.

  27. 27

    / users / login / __init __ ()의 TypeError는 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다.

  28. 28

    Keras 레이어 빌드 오류 : build ()가 1 개의 위치 인수를 사용하지만 2 개가 제공되었습니다.

  29. 29

    Pandas groupby 열로 집계하면 sum ()은 람다를 사용하여 개수 만 제공합니다.

뜨겁다태그

보관