Использование Grid Tkinter GUI и есть ли другие правильные методы для достижения этой цели - PullRequest
0 голосов
/ 07 июня 2018

Я делаю пользовательский интерфейс в GUI Tk.Я отмечен в « Blue »: я использую значение columnpan, но также оно не распространяется до конца кадра пользовательского интерфейса." Красный ": здесь я не знаю, почему этот пользовательский интерфейс расположен по центру.

Возможно, я совершил простую ошибку, я много пытался найти решение.И есть ли другой способ, кроме как дать номер строки и столбца, как в приведенном ниже коде, если есть какой-либо другой способ достичь этого

Code =tk.Label(self.page2,text="Code ").grid(row=1,rowspan=2,pady=(10,10),sticky="NW")
CodeTextbox= Entry(self.page2).grid(row=1,column= 2,rowspan=2,columnspan=100,pady=(10,10),sticky="NW" )
SerialNumber=tk.Label(self.page2,text=" Serial Number").grid(row=3,rowspan=2,pady=(10,10),sticky="NW" )
SerialNumberTextBox=Entry(self.page2).grid(row=3,column=2,rowspan=2,columnspan=100,pady=(10,10),sticky="NW" )
Model=tk.Label(self.page2,text="Model ").grid(row=5,rowspan=2,pady=(10,10),sticky="NW" )
ModelTextbox=Entry(self.page2).grid(row=5,column=2,rowspan=2,columnspan=100,pady=(10,10),sticky="NW" )
KCheckBox=Checkbutton(self.page2,text="").grid(row=7,column=1,rowspan=2,columnspan=2,pady=(10,10),sticky="W")
FCheckBox = Checkbutton(self.page2, text="F").grid(row=7, column=3,rowspan=2,columnspan=2, pady=(10, 10), sticky="W")
OW=tk.Label(self.page2,text="OW").grid(row=9,column=1,rowspan=2,columnspan=2,pady=(10,10),sticky="NW" )
OWSupported=Checkbutton(self.page2,text="Supported").grid(row=9,column=3,rowspan=2,columnspan=2,pady=(10,10),sticky="W")
OWNOTSupported=Checkbutton(self.page2,text="NOT Supported").grid(row=9,column=5,rowspan=2,columnspan=2,pady=(10,10),sticky="W")

image

1 Ответ

0 голосов
/ 07 июня 2018

Ни один из ваших столбцов не имеет никакого веса, связанного с ними, поэтому они все будут как можно меньше.Даже если вы делаете columnspan=100, все столбцы 6-100 имеют нулевую ширину.Как правило, вы должны всегда указывать по крайней мере одну строку и один столбец ненулевой ширины, чтобы использовать весь объем пространства в графическом интерфейсе.

Кроме того, вы не запрашиваете, чтобы виджеты ввода "прилипали" к правой стороне.Поэтому, даже если столбец, в котором они находятся, расширяет всю ширину графического интерфейса, входные виджеты не будут расширяться, потому что вы их тоже не сказали.

Наконец, я настоятельно рекомендую вам отделить создание виджетов от макета виджета.и сгруппировать весь код макета вместе, чтобы можно было увидеть все параметры макета в группе.То, как вы делаете это сейчас, переменные бесполезны, потому что все они установлены на None, поскольку именно это .grid(...) возвращает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...