До сих пор я пытался создать сценарий проверки подлинности на 2 фактора в python. Сейчас это работает очень хорошо, и я хотел создать gui, так как это будет работать почти 24/7 на малиновом пи.
TL;DR; Я не понимаю, что означают документы с помощью "stretch". Передайте строку, описывающую, должны ли строки/столбцы растягиваться, чтобы заполнить весь графический интерфейс ".
#!/usr/bin/env python
import pyotp
import os
import sys
import math
import time
from appJar import gui
udstart = 1
app = gui("2FA Keys","480x320")
def count(n):
while n >= 0:
time.sleep(1)
n -= 1
if n == 0:
return 1
#Keygenertor function pass the base32 code
def keyGen(secret):
secretcalc = pyotp.TOTP(secret)
code = secretcalc.now()
Lcode = list(code)
Lcode.insert(3, " ")
Ocode = ''.join(Lcode)
return Ocode
#INIT CODES GO HERE
CoinbaseCode = keyGen("3JCAJVDGIW4KHUHL")
SiaCoinCode = keyGen("PFFO3KKKRQL6ACU5")
app.stretch(columns)
app.setFont(50)
app.addLabel("l2", "Sia Coin: " + SiaCoinCode, 0,0,0,0)
app.setLabelbg("l2", "blue")
app.addLabel("l1", "Coinbase: " + CoinbaseCode, 1,0,0,0) #Coinbase 2FA
app.setLabelBg("l1", "red")
while True:
if udstart == 1:
break
else:
time.sleep(30)
break
def update():
#UPDATE CODES GO HERE
CoinbaseCode = keyGen("3JCAJVDGIW4KHUHL") #Coinbase
SiaCoinCode = keyGen("PFFO3KKKRQL6ACU5")
app.setLabel("l2", "Sia Coin: " + SiaCoinCode)
app.setLabelBg("l2", "blue")
app.setLabel("l1", "Coinbase: " + CoinbaseCode)
app.setLabelBg("l1", "red")
#profit???
udstart = 0
app.registerEvent(update)
app.go()
Я понятия не имею, что передать.
Если вы посмотрите на исходный код appJar на GitHub, вы можете определить, что вы должны пройти для stretch
:
Посмотрите, как используется strech
:
def setStretch(self, exp):
self.setExpand(exp)
...
stretch = property(getStretch, setStretch)
Рассматривая источник для setExpand
мы видим возможные значения для strech:
def setExpand(self, exp):
if exp.lower() == "none":
self.containerStack[-1]['expand'] = "NONE"
elif exp.lower() == "row":
self.containerStack[-1]['expand'] = "ROW"
elif exp.lower() == "column":
self.containerStack[-1]['expand'] = "COLUMN"
else:
self.containerStack[-1]['expand'] = "ALL"
В результате возможные строки (без учета регистра) "None", "Row", "Column" или что-нибудь еще (что приведет к "ALL").
Это также описано здесь: http://appjar.info/pythonWidgetLayout/#set-stretch-sticky