nybörjare inom GUI PyQt6 med Python313 [Löst]
Har aldrig hållit på med GUI förut och fattar inte riktigt vad jag gjort men det fungerar - bara att jag inte fattar hur jag uppdaterar label ticker1value och ticker2value, typ var 5e sekund
Jag har förstått att jag ska använda window.update() men jag vet inte vart i koden den ska hamna för att fungera? Lägger jag den innan exec så körs den ju men innan fönstret har visats, och lägger jag den efter så körs den inte förens programmet stängs av.
Kanske har jag skrivit koden lite knasigt och uppskattar input jag kan få. kanske behöver jag lära mig om trådar nu tillslut? Min google-fu är inte vad den brukat vara, så om någon hittar något lättförståeligt så uppskattar jag att ni delar med er!
(koden är maskerad så den går inte köra rakt av)
import sys
import time
import yfinance as yf
from PyQt6.QtWidgets import (
QApplication,
QLabel,
QHBoxLayout,
QWidget
)
class Widget(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("tickers")
self.h_layout = QHBoxLayout()
self.setLayout(self.h_layout)
price = stock_price("ticker1")
self.ticker1value = f"ticker1 : {price}"
self.ticker1value = QLabel(self.ticker1value)
price = stock_price("ticker2")
self.ticker2value = f"ticker2 : {price}"
self.ticker2value = QLabel(self.ticker2value)
self.h_layout.addWidget(self.ticker1value)
self.h_layout.addWidget(self.ticker2value)
self.show()
def stock_price(ticker):
try:
stock = yf.Ticker(ticker)
data = stock.history(period="1d")
incdata = data['Close'].iloc[-1]
float(incdata)
return f"{incdata:.2f}"
except Exception as e:
print(f"Error fetching data for {ticker}: {e}")
return None
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Widget()
window.show()
app.exec()