LINUX.ORG.RU

Не могу сложить 2 числа как int, они складываются как str. Конвертировать не получается.

 ,


0

2
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore


class Program(QtGui.QWidget):
    
    def __init__(self):
        super(Program, self).__init__()
        
        
        self.initUI()
   
    def initUI(self):            
        
        self.setWindowIcon(QtGui.QIcon('icon'))
        self.setWindowTitle('Mini Calculator')
        self.setFixedSize(235,100)
        self.move(0, 0)
        
        
        lbl2 = QtGui.QLabel('+', self)      
        lbl2.move(87.5, 35)
        
        lbl3 = QtGui.QLabel('=', self)
        lbl3.move(137.5, 35)
    
        
        self.a = QtGui.QLineEdit(self)
        self.a.setGeometry(50, 35, 25, 25)
        
        self.b = QtGui.QLineEdit(self)
        self.b.setGeometry(105, 35, 25, 25)
        
        self.c = QtGui.QLineEdit(self)
        self.c.setGeometry(150, 35, 25, 25)
        
        self.btn = QtGui.QPushButton('Result', self)
        self.btn.setGeometry(92.5, 75, 50, 25)
        self.btn.clicked.connect(self.count) 
        
    def count(self): 
        result = self.a.text() + self.b.text()
        self.c.setText(result)  
        
app = QtGui.QApplication(sys.argv)
program = Program()
program.show()
sys.exit(app.exec_())

То есть пишу 2 и 2, выводит как 22.

И да, я гуглил. Несколько часов гуглил. Ничерта не нашел. Такое чувство, что кроме wiki.python.org/moin/PyQt ничего нет. Непонятно как вообще по qt искать информацию какую-то.


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

В этой части

 
   def count(self): 
        result = (int(self.a.text()) + int(self.b.text()) 
        self.c.setText(result)  
Выдает ошибку
  File "so.py", line 44
    self.c.setText(str)  
       ^
SyntaxError: invalid syntax

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

У тебя закрывающей скобки не хватает одной. Закрой ноутпад.ехе и открой редактор с подсветкой синтаксиса.

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

Да весь день провел над этим кодом, уже крыша едет.

Пофиксил и вот эту ошибку выдает:

Traceback (most recent call last):
  File "so.py", line 44, in count
    self.c.setText(str)  
TypeError: QLineEdit.setText(str): argument 1 has unexpected type 'type'
Она и раньше, кстати, выходила. Я этот способ с int одним из первых попробовал

kramh
() автор топика

ЛОР, хватит писать за человека. Дайте ему самореализоваться!

FIL ★★★★
()

Осиль сначала python, потом уже будешь pyqt усиливать.

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

У тебя действительно замылился взгляд. Я думаю, проблема в том, что ты приводишь листинг:

self.c.setText(result)

А трейсбэк выдает ошибку с другим кодом:

File «so.py», line 44
self.c.setText(str)
^
SyntaxError: invalid syntax

`str' это тип данных, а у тебя там строка ожидается, питон правильно ругается.

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

Это да, снова глупая ошибка. Но тут вроде все внимательно рассмотрел

    def count(self): 
        result = (int(self.a.text())) + (int(self.b.text())) 
        self.c.setText(result)  
Traceback (most recent call last):
  File "so.py", line 45, in count
    self.c.setText(result)  
TypeError: QLineEdit.setText(str): argument 1 has unexpected type 'int'

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

Ты такой смешной :-). Как ты хочешь число вставить в _текстовое_ поле, горе-погроммист?

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

Не, Bizun был совсем тупой и агрессивный. А ещё хейтил то, что не осиливал.

EXL ★★★★★
()

Интересно, можно сделать бота-программиста, чтобы он разбивал программу на небольшие фрагменты, потом каждый постил на ЛОР и ждал, пока ему всё напишут.

anonymous
()

Чувак, программирование это прям восем не твоё, заканчивал бы уже заниматься бесперспективным делом.

mashina ★★★★★
()

И да, я гуглил. Несколько часов гуглил. Ничерта не нашел. Такое чувство, что кроме wiki.python.org/moin/PyQt ничего нет. Непонятно как вообще по qt искать информацию какую-то.

На русском языке ты и не найдешь. Только куски устаревшей документации, которую пытались переводить сообществом.

На русском только форум есть http://prog.org.ru, там ребята не в пример приветливее чем на ЛОРе.

Еще книги есть. Половина - лютый шлак.

Все остальное - на англицком. Официальная дока написана хорошо, но придерживается принципа необходимости и достаточности информации, как маны в линупсе. Поэтому даже носители языка часто не понимают что к чему в этой доке. И еще в доке есть фактологические ошибки. И я тебе гарантирую, что ты на них наткнешься сразу же, ибо так и должен постигаться Qt по версии красноглазов.

Xintrea ★★★★★
()

По заголовку подумал что тред про цепепе.

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

ААААААААА
АААААААА
ААААА
Теперь знаю чем заниматься в новогодние выходные

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