how to attatch scrollbar to dropdown list in tkinter?

12.4k views Asked by At
from Tkinter import *

master = Tk()

variable = StringVar(master)
variable.set("one") # default value

w = OptionMenu(master, variable, "Carrier 19EX 4667kW/6.16COP/Vanes",   "Carrier 19EX 4997kW/6.40COP/Vanes",    "Carrier 19EX 5148kW/6.34COP/Vanes",    "Carrier 19EX 5208kW/6.88COP/Vanes",    "Carrier 19FA 5651kW/5.50COP/Vanes",    "Carrier 19XL 1674kW/7.89COP/Vanes",    "Carrier 19XL 1779kW/6.18COP/Vanes",    "Carrier 19XL 1797kW/5.69COP/Vanes",    "Carrier 19XL 1871kW/6.49COP/Vanes",    "Carrier 19XL 2057kW/6.05COP/Vanes",    "Carrier 19XR 1076kW/5.52COP/Vanes",    "Carrier 19XR 1143kW/6.57COP/VSD",  "Carrier 19XR 1157kW/5.62COP/VSD",  "Carrier 19XR 1196kW/6.50COP/Vanes",    "Carrier 19XR 1213kW/7.78COP/Vanes",    "Carrier 19XR 1234kW/5.39COP/VSD",  "Carrier 19XR 1259kW/6.26COP/Vanes",    "Carrier 19XR 1284kW/6.20COP/Vanes",    "Carrier 19XR 1294kW/7.61COP/Vanes",    "Carrier 19XR 1350kW/7.90COP/VSD",  "Carrier 19XR 1403kW/7.09COP/VSD",  "Carrier 19XR 1407kW/6.04COP/VSD",  "Carrier 19XR 1410kW/8.54COP/VSD",  "Carrier 19XR 1558kW/5.81COP/VSD",  "Carrier 19XR 1586kW/5.53COP/VSD",  "Carrier 19XR 1635kW/6.36COP/Vanes",    "Carrier 19XR 1656kW/8.24COP/VSD",  "Carrier 19XR 1723kW/8.32COP/VSD",  "Carrier 19XR 1727kW/9.04COP/Vanes",    "Carrier 19XR 1758kW/5.86COP/VSD",  "Carrier 19XR 1776kW/8.00COP/Vanes",    "Carrier 19XR 1801kW/6.34COP/VSD",  "Carrier 19XR 2391kW/6.44COP/VSD",  "Carrier 19XR 2391kW/6.77COP/Vanes",    "Carrier 19XR 742kW/5.42COP/VSD",   "Carrier 19XR 823kW/6.28COP/Vanes", "Carrier 19XR 869kW/5.57COP/VSD",   "Carrier 19XR 897kW/6.23COP/VSD",   "Carrier 19XR 897kW/6.50COP/Vanes", "Carrier 19XR 897kW/7.23COP/VSD",   "Carrier 23XL 1062kW/5.50COP/Valve",    "Carrier 23XL 1108kW/6.92COP/Valve",    "Carrier 23XL 1196kW/6.39COP/Valve",    "Carrier 23XL 686kW/5.91COP/Valve", "Carrier 23XL 724kW/6.04COP/Vanes", "Carrier 23XL 830kW/6.97COP/Valve", "Carrier 23XL 862kW/6.11COP/Valve", "Carrier 23XL 862kW/6.84COP/Valve", "Carrier 23XL 865kW/6.05COP/Valve", "Carrier 30RB100 336.5kW/2.8COP",   "Carrier 30RB110 371kW/2.8COP", "Carrier 30RB120 416.4kW/2.8COP",   "Carrier 30RB130 447.7kW/2.8COP",   "Carrier 30RB150 507.8kW/2.8COP",   "Carrier 30RB160 538kW/2.9COP", "Carrier 30RB170 585.5kW/2.8COP",   "Carrier 30RB190 662.9kW/2.8COP",   "Carrier 30RB210 710kW/2.9COP", "Carrier 30RB225 753.3kW/2.8COP",   "Carrier 30RB250 836.2kW/2.8COP",   "Carrier 30RB275 915kW/2.8COP", "Carrier 30RB300 993.8kW/2.8COP",   "Carrier 30RB315 1076.1kW/2.9COP",  "Carrier 30RB330 1123.6kW/2.8COP",  "Carrier 30RB345 1170.7kW/2.8COP",  "Carrier 30RB360 1248.4kW/2.8COP",  "Carrier 30RB390 1325.8kW/2.8COP",  "Carrier 30RB90 303.8kW/2.9COP",    "Carrier 30XA100 330.1kW/3.1COP",   "Carrier 30XA110 359.9kW/3COP", "Carrier 30XA120 389kW/3COP",   "Carrier 30XA140 466.7kW/3.1COP",   "Carrier 30XA160 535.1kW/3.1COP",   "Carrier 30XA180 601.9kW/3.1COP",   "Carrier 30XA200 681.7kW/3.1COP",   "Carrier 30XA220 743.7kW/3.1COP",   "Carrier 30XA240 801.6kW/3COP", "Carrier 30XA260 881.7kW/3.1COP",   "Carrier 30XA280 943.4kW/3.1COP",   "Carrier 30XA300 1010.2kW/3.1COP",  "Carrier 30XA325 1077.4kW/3.1COP",  "Carrier 30XA350 1138.7kW/3COP",    "Carrier 30XA400 1348kW/3COP",  "Carrier 30XA450 1499.5kW/2.9COP",  "Carrier 30XA500 1609.4kW/2.9COP",  "Carrier 30XA80 265.5kW/2.9COP",    "Carrier 30XA90 297.8kW/3.1COP",    "DOE-2 Centrifugal/5.50COP",    "DOE-2 Reciprocating/3.67COP",  "McQuay AGZ010BS 34.5kW/2.67COP",   "McQuay AGZ013BS 47.1kW/2.67COP",   "McQuay AGZ017BS 54.5kW/2.67COP",   "McQuay AGZ020BS 71kW/2.67COP", "McQuay AGZ025BS 78.1kW/2.67COP",   "McQuay AGZ025D 96kW/2.81COP",  "McQuay AGZ029BS 95.7kW/2.67COP",   "McQuay AGZ030D 111.1kW/2.81COP",   "McQuay AGZ034BS 117.1kW/2.61COP",  "McQuay AGZ035D 122.7kW/2.93COP",   "McQuay AGZ040D 133.3kW/2.96COP",   "McQuay AGZ045D 149.8kW/3.02COP",   "McQuay AGZ050D 169.2kW/2.96COP",   "McQuay AGZ055D 181.5kW/2.93COP",   "McQuay AGZ060D 197.3kW/2.87COP",   "McQuay AGZ065D 204.3kW/3.02COP",   "McQuay AGZ070D 225.4kW/2.84COP",   "McQuay AGZ075D 257.1kW/2.93COP",   "McQuay AGZ080D 285.2kW/2.87COP",   "McQuay AGZ090D 313.7kW/2.87COP",   "McQuay AGZ100D 351kW/2.81COP", "McQuay AGZ110D 373.1kW/2.87COP",   "McQuay AGZ125D 411.8kW/2.87COP",   "McQuay AGZ130D 455.8kW/2.81COP",   "McQuay AGZ140D 479kW/2.99COP", "McQuay AGZ160D 539.1kW/2.93COP",   "McQuay AGZ180D 605.6kW/2.81COP",   "McQuay AGZ190D 633.4kW/2.96COP",   "McQuay PEH 1030kW/8.58COP/Vanes",  "McQuay PEH 1104kW/8.00COP/Vanes",  "McQuay PEH 1231kW/6.18COP/Vanes",  "McQuay PEH 1635kW/7.47COP/Vanes",  "McQuay PEH 1895kW/6.42COP/Vanes",  "McQuay PEH 1934kW/6.01COP/Vanes",  "McQuay PEH 703kW/7.03COP/Vanes",   "McQuay PEH 819kW/8.11COP/Vanes",   "McQuay PFH 1407kW/6.60COP/Vanes",  "McQuay PFH 2043kW/8.44COP/Vanes",  "McQuay PFH 2124kW/6.03COP/Vanes",  "McQuay PFH 2462kW/6.67COP/Vanes",  "McQuay PFH 3165kW/6.48COP/Vanes",  "McQuay PFH 4020kW/7.35COP/Vanes",  "McQuay PFH 932kW/5.09COP/Vanes",   "McQuay WDC 1973kW/6.28COP/Vanes",  "McQuay WSC 1519kW/7.10COP/Vanes",  "McQuay WSC 1751kW/6.73COP/Vanes",  "McQuay WSC 471kW/5.89COP/Vanes",   "McQuay WSC 816kW/6.74COP/Vanes",   "Multistack MS 172kW/3.67COP/None", "Trane CGAM100 337.6kW/3.11COP",    "Trane CGAM110 367.2kW/3.02COP",    )
w.pack()

mainloop()
1

There are 1 answers

1
fhdrsdg On BEST ANSWER

With an OptionMenu, I believe you can't.

I think the better widget for you to use is the ttk.Combobox, which adds a scrollbar automatically when there are many values:

from Tkinter import *
import ttk

master = Tk()

variable = StringVar(master)
variable.set("one") # default value

w = ttk.Combobox(master, textvariable=variable, values=["Carrier 19EX 4667kW/6.16COP/Vanes", "Carrier 19EX 4997kW/6.40COP/Vanes", "Carrier 19EX 5148kW/6.34COP/Vanes", "Carrier 19EX 5208kW/6.88COP/Vanes", "Carrier 19FA 5651kW/5.50COP/Vanes", "Carrier 19XL 1674kW/7.89COP/Vanes", "Carrier 19XL 1779kW/6.18COP/Vanes", "Carrier 19XL 1797kW/5.69COP/Vanes", "Carrier 19XL 1871kW/6.49COP/Vanes", "Carrier 19XL 2057kW/6.05COP/Vanes", "Carrier 19XR 1076kW/5.52COP/Vanes", "Carrier 19XR 1143kW/6.57COP/VSD", "Carrier 19XR 1157kW/5.62COP/VSD", "Carrier 19XR 1196kW/6.50COP/Vanes", "Carrier 19XR 1213kW/7.78COP/Vanes", "Carrier 19XR 1234kW/5.39COP/VSD", "Carrier 19XR 1259kW/6.26COP/Vanes", "Carrier 19XR 1284kW/6.20COP/Vanes", "Carrier 19XR 1294kW/7.61COP/Vanes", "Carrier 19XR 1350kW/7.90COP/VSD", "Carrier 19XR 1403kW/7.09COP/VSD", "Carrier 19XR 1407kW/6.04COP/VSD", "Carrier 19XR 1410kW/8.54COP/VSD", "Carrier 19XR 1558kW/5.81COP/VSD", "Carrier 19XR 1586kW/5.53COP/VSD", "Carrier 19XR 1635kW/6.36COP/Vanes", "Carrier 19XR 1656kW/8.24COP/VSD", "Carrier 19XR 1723kW/8.32COP/VSD", "Carrier 19XR 1727kW/9.04COP/Vanes", "Carrier 19XR 1758kW/5.86COP/VSD", "Carrier 19XR 1776kW/8.00COP/Vanes", "Carrier 19XR 1801kW/6.34COP/VSD", "Carrier 19XR 2391kW/6.44COP/VSD", "Carrier 19XR 2391kW/6.77COP/Vanes", "Carrier 19XR 742kW/5.42COP/VSD", "Carrier 19XR 823kW/6.28COP/Vanes", "Carrier 19XR 869kW/5.57COP/VSD", "Carrier 19XR 897kW/6.23COP/VSD", "Carrier 19XR 897kW/6.50COP/Vanes", "Carrier 19XR 897kW/7.23COP/VSD", "Carrier 23XL 1062kW/5.50COP/Valve", "Carrier 23XL 1108kW/6.92COP/Valve", "Carrier 23XL 1196kW/6.39COP/Valve", "Carrier 23XL 686kW/5.91COP/Valve", "Carrier 23XL 724kW/6.04COP/Vanes", "Carrier 23XL 830kW/6.97COP/Valve", "Carrier 23XL 862kW/6.11COP/Valve", "Carrier 23XL 862kW/6.84COP/Valve", "Carrier 23XL 865kW/6.05COP/Valve", "Carrier 30RB100 336.5kW/2.8COP", "Carrier 30RB110 371kW/2.8COP", "Carrier 30RB120 416.4kW/2.8COP", "Carrier 30RB130 447.7kW/2.8COP", "Carrier 30RB150 507.8kW/2.8COP", "Carrier 30RB160 538kW/2.9COP", "Carrier 30RB170 585.5kW/2.8COP", "Carrier 30RB190 662.9kW/2.8COP", "Carrier 30RB210 710kW/2.9COP", "Carrier 30RB225 753.3kW/2.8COP", "Carrier 30RB250 836.2kW/2.8COP", "Carrier 30RB275 915kW/2.8COP", "Carrier 30RB300 993.8kW/2.8COP", "Carrier 30RB315 1076.1kW/2.9COP", "Carrier 30RB330 1123.6kW/2.8COP", "Carrier 30RB345 1170.7kW/2.8COP", "Carrier 30RB360 1248.4kW/2.8COP", "Carrier 30RB390 1325.8kW/2.8COP", "Carrier 30RB90 303.8kW/2.9COP", "Carrier 30XA100 330.1kW/3.1COP", "Carrier 30XA110 359.9kW/3COP", "Carrier 30XA120 389kW/3COP", "Carrier 30XA140 466.7kW/3.1COP", "Carrier 30XA160 535.1kW/3.1COP", "Carrier 30XA180 601.9kW/3.1COP", "Carrier 30XA200 681.7kW/3.1COP", "Carrier 30XA220 743.7kW/3.1COP", "Carrier 30XA240 801.6kW/3COP", "Carrier 30XA260 881.7kW/3.1COP", "Carrier 30XA280 943.4kW/3.1COP", "Carrier 30XA300 1010.2kW/3.1COP", "Carrier 30XA325 1077.4kW/3.1COP", "Carrier 30XA350 1138.7kW/3COP", "Carrier 30XA400 1348kW/3COP", "Carrier 30XA450 1499.5kW/2.9COP", "Carrier 30XA500 1609.4kW/2.9COP", "Carrier 30XA80 265.5kW/2.9COP", "Carrier 30XA90 297.8kW/3.1COP", "DOE-2 Centrifugal/5.50COP", "DOE-2 Reciprocating/3.67COP", "McQuay AGZ010BS 34.5kW/2.67COP", "McQuay AGZ013BS 47.1kW/2.67COP", "McQuay AGZ017BS 54.5kW/2.67COP", "McQuay AGZ020BS 71kW/2.67COP", "McQuay AGZ025BS 78.1kW/2.67COP", "McQuay AGZ025D 96kW/2.81COP", "McQuay AGZ029BS 95.7kW/2.67COP", "McQuay AGZ030D 111.1kW/2.81COP", "McQuay AGZ034BS 117.1kW/2.61COP", "McQuay AGZ035D 122.7kW/2.93COP", "McQuay AGZ040D 133.3kW/2.96COP", "McQuay AGZ045D 149.8kW/3.02COP", "McQuay AGZ050D 169.2kW/2.96COP", "McQuay AGZ055D 181.5kW/2.93COP", "McQuay AGZ060D 197.3kW/2.87COP", "McQuay AGZ065D 204.3kW/3.02COP", "McQuay AGZ070D 225.4kW/2.84COP", "McQuay AGZ075D 257.1kW/2.93COP", "McQuay AGZ080D 285.2kW/2.87COP", "McQuay AGZ090D 313.7kW/2.87COP", "McQuay AGZ100D 351kW/2.81COP", "McQuay AGZ110D 373.1kW/2.87COP", "McQuay AGZ125D 411.8kW/2.87COP", "McQuay AGZ130D 455.8kW/2.81COP", "McQuay AGZ140D 479kW/2.99COP", "McQuay AGZ160D 539.1kW/2.93COP", "McQuay AGZ180D 605.6kW/2.81COP", "McQuay AGZ190D 633.4kW/2.96COP", "McQuay PEH 1030kW/8.58COP/Vanes", "McQuay PEH 1104kW/8.00COP/Vanes", "McQuay PEH 1231kW/6.18COP/Vanes", "McQuay PEH 1635kW/7.47COP/Vanes", "McQuay PEH 1895kW/6.42COP/Vanes", "McQuay PEH 1934kW/6.01COP/Vanes", "McQuay PEH 703kW/7.03COP/Vanes", "McQuay PEH 819kW/8.11COP/Vanes", "McQuay PFH 1407kW/6.60COP/Vanes", "McQuay PFH 2043kW/8.44COP/Vanes", "McQuay PFH 2124kW/6.03COP/Vanes", "McQuay PFH 2462kW/6.67COP/Vanes", "McQuay PFH 3165kW/6.48COP/Vanes", "McQuay PFH 4020kW/7.35COP/Vanes", "McQuay PFH 932kW/5.09COP/Vanes", "McQuay WDC 1973kW/6.28COP/Vanes", "McQuay WSC 1519kW/7.10COP/Vanes", "McQuay WSC 1751kW/6.73COP/Vanes", "McQuay WSC 471kW/5.89COP/Vanes", "McQuay WSC 816kW/6.74COP/Vanes", "Multistack MS 172kW/3.67COP/None", "Trane CGAM100 337.6kW/3.11COP", "Trane CGAM110 367.2kW/3.02COP"])
w.pack()

master.mainloop()