public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
scan.nextLine();
double d = scan.nextDouble();
scan.nextLine();
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
Функции grid
, pack
и place
объекта Entry
и всех других виджетов возвращают None
. В python, когда вы делаете a().b()
, результат выражения - это то, что возвращает b()
, поэтому Entry(...).grid(...)
вернет None
.
Вы должны разделить это на две строки следующим образом:
entryBox = Entry(root, width=60)
entryBox.grid(row=2, column=1, sticky=W)
Таким образом вы получите свою Entry
ссылку, сохраненную в entryBox
, и она выложена, как вы ожидаете. Это имеет бонусный побочный эффект, заключающийся в том, что ваш макет легче понять и поддерживать, если вы собираете все свои grid
и / или pack
операторы в блоках.
Измените эту строку:
entryBox=Entry(root,width=60).grid(row=2, column=1,sticky=W)
в эти две строки:
entryBox=Entry(root,width=60)
entryBox.grid(row=2, column=1,sticky=W)
То же самое касается label
, кстати, как вы уже правильно сделали для grabBtn
!