fixed-width labels (entry )and by column frames (entry in we'll see third form techniquelayouts using the grid geometry manager of thesegriddingand the rows with fixed-width labels of entry tend to work best across all platforms laying out by column frames as in entry works only on platforms where the height of each label exactly matches the height of each entry field because the two are not associated directlythey might not line up properly on some platforms when tried running some forms that looked fine on windows xp on linux machinelabels and their corresponding entries did not line up horizontally even the simple window produced by entry looks slightly askew on closer inspection it only appears the same as entry on some platforms because of the small number of inputs and size defaults on my windows netbookthe labels and entries start to become horizontally mismatched if you add or additional inputs to entry ' fields tuple if you care about portabilitylay out your forms either with the packed row frames and fixed/maximum-width labels of entry or by gridding widgets by row and column numbers instead of packing them we'll see more on such forms in the next and in we'll write form-construction tool that hides the layout details from its clients altogether (including its use case client in checkbuttonradiobuttonand scale this section introduces three widget typesthe checkbutton ( multiple-choice input widget)the radiobutton ( single-choice device)and the scale (sometimes known as "slider"all are variations on theme and are somewhat related to simple buttonsso we'll explore them as group here to make these widgets more fun to play withwe'll reuse the dialogtable module shown in example - to provide callbacks for widget selections (callbacks pop up dialog boxesalong the waywe'll also use the tkinter variables we just met to communicate with these widgetsstate settings checkbuttons the checkbutton and radiobutton widgets are designed to be associated with tkinter variablesclicking the button changes the value of the variableand setting the variable changes the state of the button to which it is linked in facttkinter variables are central to the operation of these widgetsa collection of checkbuttons implements multiple-choice interface by assigning each button variable of its own collection of radiobuttons imposes mutually exclusive single-choice model by giving each button unique value and the same tkinter variable checkbuttonradiobuttonand scale