Данная программа создаёт поля и кнопки, но я не знаю, как мне ссылаться в функциях на эти элементы, которые ещё не существуют.
Функция старт должна умножать левое поле на два и выводить в правое поле своего ряда.
Функция клик выводит в консоль число из левого поля своего ряда.
# Python 3. PyQt4
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
class GridLayout(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setWindowTitle('Заголовок')
self.grid = QtGui.QGridLayout()
# ПОЛЯ
names_pole = ['12','','7','','4','']
pos_pole = [(0, 0), (0, 1),
(1, 0), (1, 1),
(2, 0), (2, 1)]
j = 0
for i in names_pole:
self.pole = QtGui.QLineEdit(i)
self.grid.addWidget(self.pole, pos_pole[j][0], pos_pole[j][1])
j = j + 1
self.pole.textChanged.connect(self.on_start) # сигнал изм текста
# КНОПКИ
names_button = ['Copy', 'Copy', 'Copy']
pos_button = [(0, 3), (1, 3), (2, 3)]
j = 0
for i in names_button:
self.button = QtGui.QPushButton(i)
self.grid.addWidget(self.button, pos_button[j][0], pos_button[j][1])
j = j + 1
self.button.clicked.connect(self.on_click)
self.setLayout(self.grid)
def on_start(self):
a = self.pole.text()
b = 2*a
self.pole.setText(str(b))
print('старт')
def on_click(self):
a = self.pole.text()
print(a,'клик')
app = QtGui.QApplication(sys.argv)
qb = GridLayout()
qb.show()
sys.exit(app.exec_())