LINUX.ORG.RU

Не получается с кнопкой изменить содержание внутри QLineEdit с помощью setText

 ,


0

1
import sys
from PyQt4 import QtGui


class Program(QtGui.QWidget):
    
    def __init__(self):
        super(Program, self).__init__()
        
        
        self.initUI()
   
    def initUI(self):            
        
        self.setFixedSize(235,100)

        c = QtGui.QLineEdit(self)
        c.setGeometry(150, 35, 25, 25)
        
        
        btn = QtGui.QPushButton('Result', self)
        btn.setGeometry(92.5, 75, 50, 25)
        btn.clicked.connect(self.count)
        
        
    def count(self): 
        
        self.c.setText('dadada')

app = QtGui.QApplication(sys.argv)
program = Program()
program.show()
sys.exit(app.exec_())

После нажатия, в консоле появляется надпись:

Traceback (most recent call last):
  File "so.py", line 28, in count
    self.c.setText('dadada')
AttributeError: 'Program' object has no attribute 'c'


Ответ на: комментарий от kramh

да, есть. не писать на питоне

иначе говоря, к полям класса в путоне можно обращаться только self.field.

f1u77y ★★★ ()
Ответ на: комментарий от f1u77y

Я не до конца разобрался с этой темой, но вроде как в строке

self.btn = QtGui.QPushButton('Result', self)
Второй self уже лишний, т.к. есть первый.

kramh ()
Ответ на: комментарий от kramh

Второй self уже лишний, т.к. есть первый.

ну ё-мое, а доки почитать? там же чёрным по белому написано, что «второй self» — это parent object для данной QPushButton. а чтобы не понять, зачем нужен первый, нужно не знать python почти никак

f1u77y ★★★ ()
Ответ на: комментарий от f1u77y

Да вроде разобрался щас с этим.

Я английский не сильно хорошо знаю, поэтому часто просто копирую код из инета, смотрю что программа делает, меняю какие-то строки, смотрю как меняется её поведение и т.п.

Кстати, остался один момент, который я не могу понять: Вот, например, мы наследуем в данном случае QtGui.QWidget. Я это представляю как дерево и его ветки(модули), которые расходятся в разные стороны. Т.е. по логике, мы не можем уйти ниже по иерархии этого QWidget внутри QtGui - а вот нет. Можно даже взять соседний модуль типа QtCore и работать с ним. Мне интересно, как это реализуется? Можешь дать какую-нибудь ссылку на документацию? Мне и на английском пойдет.

У меня есть предположение, что внутри этого QWidget лежат, так сказать, ссылки, чтобы можно было переходить ниже по иерархии(возвращаться то есть). Верны ли мои предположения, в таком случае?

kramh ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.