-1

.pyに変換するとコードをクラスにドロップするQtDesignerを使用しています。

クラス外のボタン、ラベル、テキストボックスにアクセスして操作を行う必要があります。未解決のエラーのため、関数をクラスの上に置くことができません。クラス内に自分の関数を追加したくありません.たくさんのものがあり、面倒です。そのため、関数をクラスの後に配置する必要があります。

これは、Qt Designer が変換する非常に単純化されたサンプルの Python コード構造です。

class MyWindowUI():
    def setupUI(self):
        self.myButton1 = 'A'
        self.myButton2 = 'B'

    def stuff(self):
        self.myButton3 = 'A'
        self.myButton4 = 'B'
    test = "something"

myBtn = MyWindowUI()
print (myBtn.test)
print (myBtn.myButton4)

したがって、 myBtn.test は機能します。「何か」を出力しますが、myBtn.myButton4 は出力しません。MyWindowUI インスタンスには属性「myButton4.

クラスの外から「stuff」と「setupUI」から情報を取得するにはどうすればよいですか?

4

1 に答える 1

1

メソッドを呼び出していないため、コードがそれらのコード ブロックに入って変数を作成することはありません。

1 つの方法はそれらを呼び出すこと__init__ですが、クラス インスタンスを作成した後、好きな場所で呼び出すことができます。コードがその行を通過することを確認してください。

class MyWindowUI():
    def __init__(self):
        self.setupUI()
        self.stuff()

    def setupUI(self):
        self.myButton1 = 'A'
        self.myButton2 = 'B'

    def stuff(self):
        self.myButton3 = 'A'
        self.myButton4 = 'B'
    test = "something"

myBtn = MyWindowUI()
#myBtn.setupUI()
#myBtn.stuff()
print (myBtn.test)
print (myBtn.myButton4)
于 2016-02-11T08:15:39.127 に答える