Hallo,
Met de volgende code heb ik een probleempje:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.setWindowTitle("Waarde Coins")
grid = QGridLayout()
self.setLayout(grid)
# create matrix: "le" wordt een LineEdit, "" wordt overgeslagen en de rest wordt Label
cells = ["", "<b>Totaal</b>", "<b>BTC</b>", "<b>ETH</b>", "<b>LTC</b>",
"Aantal:", "", "le", "le", "le",
"Aantal DGB:", "", "le", "le", "le",
"Waarde USD:", "le", "le", "le", "le",
"<b>Waarde EURO:</b>", "le", "le", "le", "le",
"Investering in EURO:", "le", "", "", "", ]
positions = [(row, col) for row in range(6) for col in range(5)]
for positions, cells in zip(positions, cells):
# Create the labels and lineEdits from matrix
# print("Positions (row,col):", "cel" + str(positions[0]) + "-" + str(positions[1]))
cell = name = "cel" + str(positions[0]) + "-" + str(positions[1])
if cells == "":
continue
elif cells == 'le':
cell = QLineEdit()
cell.setAlignment(Qt.AlignRight)
cell.textChanged.connect(lambda x, pos=positions, name=name: self.my_custom_fn(x, pos, name))
if positions[0] == 3 or positions[0] == 4:
cell.setDisabled(1)
else:
cell = QLabel(cells)
if positions[0] == 0:
cell.setAlignment(Qt.AlignCenter)
grid.addWidget(cell, *positions)
widget = QWidget()
widget.setLayout(grid)
self.setCentralWidget(widget)
def my_custom_fn(self, a, pos, name):
print("Invoer : ", a)
print("Pos : ", pos)
print("Name : ", name)
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())
Op basis van de list 'cells' worden de labels en lineEdits aangemaakt. Gaat prima.
In de functie (my_custom_fn) die aangeroepen wordt, krijg ik keurig de waarde en cell coördinaten door. Maar nu wil ik op basis van die ingevoerde waarde iets berekenen en dat resultaat in een andere lineEdit zetten. En dat lukt voor geen meter. Hoe doe ik dat?
Het gebruik van QTableWidget was misschien gemakkelijker, maar dit lijkt me toch ook te moeten kunnen.
Alvast bedankt,
Bauke