⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iwidgets.ps

📁 这是一个Linux下的集成开发环境
💻 PS
📖 第 1 页 / 共 5 页
字号:
(set. Seasoned developers commonly package this code,) 72 366.33 T(attempting to create a composite widget in a set of pro-) 72 354.33 T(cedures which allows for consistent creation of the wid-) 72 342.33 T(get combination. This may provide centralization of) 72 330.33 T(logic, but the procedures lack the encapsulation of a) 72 318.33 T(pure widget and end up \337ooding global name space. At) 72 306.33 T(this point, some developers may resort to C code.) 72 294.33 T(What was really needed was the ability to combine Tk) 72 270.33 T(widgets together into abstract building blocks called) 72 258.33 T(\322Mega-W) 72 246.33 T(idgets\323 at the VHLL layer) 111.58 246.33 T(. The [incr T) 215.45 246.33 T(cl] [1]) 265.29 246.33 T(and [incr Tk] [2] extensions provide this capability) 72 234.33 T(,) 274.93 234.33 T(allowing mega-widget development in an object-ori-) 72 222.33 T(ented paradigm using T) 72 210.33 T(cl/Tk rather than C. The next) 166.01 210.33 T(step was to build a mega-widget set in these extensions) 72 198.33 T(which replaces the redundant widget combination pat-) 72 186.33 T-0.1 (terns and provides a foundation for future development.) 72 174.33 P([incr W) 72 162.33 T(idgets] is one such extension.) 102.42 162.33 T([incr W) 72 144.33 T(idgets] is an object-oriented, extensible set of) 102.42 144.33 T-0.6 (mega-widgets, delivering many general purpose widgets) 72 132.33 P(such as option menus, selection boxes, and dialogs) 72 120.33 T(whose counterparts are found in Motif. Since [incr W) 72 108.33 T(id-) 285.72 108.33 T(gets] is based on [incr Tk], the Tk framework of con\336g-) 72 96.33 T(uration options and widget commands is maintained. In) 72 84.33 T(other words, they look, act, and feel like Tk widgets.) 315 470.33 T([incr W) 315 458.33 T(idgets] blends with the standard Tk widgets,) 345.42 458.33 T-0.28 (raising the level of programming and making it easier to) 315 446.33 P(consistently develop well styled applications.) 315 434.33 T(The idea of extending the basic Tk widget set is not) 315 410.33 T(original. Other mega-widget extensions exist such as) 315 398.33 T(T) 315 386.33 T(ix [3] and itcl-widgets [4]. V) 320.76 386.33 T(isually) 435.14 386.33 T(, [incr W) 461.16 386.33 T(idgets]) 496.58 386.33 T-0.03 (covers some of the same ground, successfully replacing) 315 374.33 P(many of the same typical combinations. [incr W) 315 362.33 T(idgets]) 507.35 362.33 T(dif) 315 350.33 T(fers in the degree of its reusability) 325.93 350.33 T(, extensibility) 461.92 350.33 T(, \337ex-) 515.72 350.33 T(ibility) 315 338.33 T(, and adherence to the Motif style guide.) 338.25 338.33 T(The [incr W) 315 314.33 T(idgets] mega-widget set is also distin-) 363.47 314.33 T(guished by its consistent use of style, built-in intelli-) 315 302.33 T(gence, high degree of \337exibility) 315 290.33 T(, ease of extending base) 441.83 290.33 T(level functionality) 315 278.33 T(, and its object-oriented implementa-) 387.4 278.33 T(tion. Its use has resulted in increased productivity) 315 266.33 T(, reli-) 512.66 266.33 T(ability) 315 254.33 T(, and style guide adherence. This paper) 339.91 254.33 T(concentrates on these unique aspects of the widget set) 315 242.33 T(and the presentation of its innovative concepts. A picto-) 315 230.33 T(rial tour with sample code segments will be given as an) 315 218.33 T(appendix.) 315 206.33 T0 12 Q(Mega-W) 390.28 175 T(idgets) 434.72 175 T1 10 Q(Mega-widgets has been a hot topic within the T) 315 150.33 T(cl/Tk) 504.83 150.33 T(community) 315 138.33 T(. The discussion centers on the bene\336ts,) 359.91 138.33 T(frameworks, mechanisms, and implementation tech-) 315 126.33 T(niques. It was McLennan [1] who originally coined the) 315 114.33 T(term in his work with [incr T) 315 102.33 T(cl], expanding on the con-) 430.4 102.33 T(cept with [incr Tk]. He proposes that mega-widgets) 315 90.33 T(should seamlessly extend the Tk widget set. They) 315 78.33 T72 495 540 720 R7 XV0 14 Q0 X([incr W) 263.16 710.67 T(idgets]) 309.18 710.67 T(An Object Oriented Mega-W) 192.98 692.67 T(idget Set) 367.31 692.67 T2 9 Q(Revised 10/31/95 - Originally present at USENIX T) 176.36 678 T(cl/Tk W) 365.8 678 T(orkshop 95) 394.38 678 T1 12 Q(Mark L. Ulferts) 268.18 652 T3 10 Q(DSC Communications Corporation) 235.16 637.33 T(mulferts@spd.dsccc.com) 256.13 623.33 T(http://www) 242.19 609.33 T(.wn.com/biz/iwidgets) 285.91 609.33 T0 12 Q(Abstract) 283.67 576 T3 10 Q(The intr) 72 551.33 T(oduction of [incr T) 103.58 551.33 T(cl] and [incr Tk] allows an object oriented appr) 178.5 551.33 T(oach to Tk widget construction. \322Mega-) 370.91 551.33 T(widgets\323 developed in these extensions seamlessly expand the Tk base widget set. Each of these object-oriented wid-) 72 539.33 T-0.03 (gets may themselves be extended, using either inheritance or composition. This paper pr) 72 527.33 P-0.03 (esents one such general pur-) 425.14 527.33 P(pose hierar) 72 515.33 T(chy called [incr W) 117.46 515.33 T(idgets] which maintains the Motif look-and-feel and establishes several new concepts,) 191.06 515.33 T(including extensible child sites and \337exible lar) 72 503.33 T(ge scale component con\336guration.) 257.73 503.33 TFMENDPAGE%%EndPage: "1" 1%%Page: "2" 2612 792 0 FMBEGINPAGE[0 0 0 1 0 0 0][ 0 1 1 0 1 0 0][ 1 0 1 0 0 1 0][ 1 1 0 0 0 0 1][ 1 0 0 0 0 1 1][ 0 1 0 0 1 0 1][ 0 0 1 0 1 1 0] 7 FrameSetSepColorsFrameNoSep0 0 0 1 0 0 0 K0 0 0 1 0 0 0 K0 0 0 1 0 0 0 K0 0 0 1 0 0 0 K1 10 Q0 X0 0 0 1 0 0 0 K(should behave like standard Tk widgets, but are com-) 72 713.33 T(posed of many Tk widgets and possibly other mega-) 72 701.33 T(widgets as components. The implementation must) 72 689.33 T(ensure that users notice no signi\336cant dif) 72 677.33 T(ferences. Stan-) 235.69 677.33 T(dard commands such as \324con\336gure\325 and \324cget\325 must) 72 665.33 T(exist and options should be propagated to all compo-) 72 653.33 T(nents. Thus, con\336guration of a mega-widgets \322-back-) 72 641.33 T(ground\323 or \322-relief\323 option should have the expected) 72 629.33 T(results on its components.) 72 617.33 T-0.15 (The [incr T) 72 593.33 P-0.15 (cl] and [incr Tk] extensions fully address the) 116.55 593.33 P(issues of framework and mechanism for mega-widget) 72 581.33 T(production. They have established themselves as the) 72 569.33 T(defacto standard object-oriented extensions and have) 72 557.33 T(been chosen to provide the backbone for the [incr W) 72 545.33 T(id-) 281.82 545.33 T(gets] set. Using these extensions, each mega-widget) 72 533.33 T(becomes a \322class\323, de\336ning a unique type of widget) 72 521.33 T(object in a separate namespace. This ensures that data) 72 509.33 T(and commands associated with an object are encapsu-) 72 497.33 T(lated, eliminating global name space pollution.) 72 485.33 T0 12 Q(Example) 161.83 454 T1 10 Q-0.24 (At this point, an example of mega-widget usage can pro-) 72 429.33 P(vide a taste of [incr W) 72 417.33 T(idgets] capabilities and illustrate) 160.74 417.33 T(the bene\336ts. The example centers around the construc-) 72 405.33 T-0.17 (tion of a typical login screen which prompts the user for) 72 393.33 P(user name and password. New requirements will be) 72 381.33 T-0.03 (incremental, leading to the development of a new mega-) 72 369.33 P(widget which is implemented as an extension of an) 72 357.33 T(existing one.) 72 345.33 T-0.3 (A primitive login screen is composed of two \336elds, each) 72 321.33 P(having a label and entry widget. The T) 72 309.33 T(cl/Tk code) 226.27 309.33 T(required is shown in Figure 1. [incr W) 72 297.33 T(idgets] provides) 224.91 297.33 T(an Entry\336eld class which replaces this standard widget) 72 285.33 T(combination. This is shown in Figure 2. At this point,) 72 273.33 T(mega-widget usage is mostly a matter of convenience) 72 261.33 T(and minor savings in code, yet with a few additional) 72 249.33 T(requirements the bene\336ts begin to escalate.) 72 237.33 T(Now let\325) 72 213.33 T(s add new requirements which might be) 106.72 213.33 T(required for a normal login screen. First, the labels) 72 201.33 T(should be left aligned. Next, the user \336eld width should) 72 189.33 T(be limited to a maximum of 10 characters with input) 72 177.33 T(restricted to alphabetic characters and illegal character) 72 165.33 T(entry ringing the bell. As for the password, input must) 72 153.33 T-0.05 (be masked and the return key should invoke a login pro-) 72 141.33 P(cedure. W) 72 129.33 T(e\325ll also present a more aesthetic interface by) 112.29 129.33 T(varying the textual background in the mega-widget.) 72 117.33 T(Since this last requirement applies to both Entry\336elds,) 72 105.33 T-0.03 (the option database will be used. Figure 3 illustrates the) 72 93.33 P-0.48 (code needed to implement these new requirements using) 72 81.33 P([incr W) 315 200.33 T(idgets]. Even without the presentation of com-) 345.42 200.33 T-0.18 (parative straight T) 315 188.33 P-0.18 (cl/Tk code, its safe to say that the ben-) 387.27 188.33 P(e\336ts have increased.) 315 176.33 T(This example gives just a sampling of the label control) 315 152.33 T(capabilities built into those classes based on the) 315 140.33 T(Labeledwidget class such as the Entry\336eld mega-wid-) 315 128.33 T-0.18 (get. The label\325) 315 116.33 P-0.18 (s position relative to its associated widget) 372.12 116.33 P-0.04 (may be speci\336ed using standard directions: nw) 315 104.33 P-0.04 (, n, ne, e,) 501.29 104.33 P-0.4 (se, s, sw) 315 92.33 P-0.4 (, and w) 346.88 92.33 P-0.4 (. The label need not be limited to text, the) 374.58 92.33 P(class supports both bitmaps and images as well. A mar-) 315 80.33 T315 207 540 720 C0 0 0 1 0 0 0 K0 0 0 1 0 0 0 K315 243 540 360 R7 X0 0 0 1 0 0 0 KV0.5 H2 Z0 XN315 396 540 720 R7 XV0 XN%%BeginBinary:  6824     251 117 129.09 60.17 0 365.92 648/red <72FFFFFFFFFFFFFFFFFFFFFFFFFF66F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF8080808080808080808080808080808080808080808080804040404040404040404040404040404040404040404040000000000000000000000000000000000039C069DD00FF0000003333330033CCDD9999112277005544FFCC66AABBFF33EE9999CC7AEFD39765E1A36FE700FF5500557FB22EB099FFFFB07AFFCC0087AFB4CD73E6A24DBF88F558D7439D50D080C0C080C0808060C000FFA000FFBE8BD28BD9B3FF7220C0A040C040D060F0E010B499A0FF0019BF2FFF6223852F465F4770FF0000FF> store/green <9F0000000000000000000000000099DEFFFFFFBFBFBFBFBF808080808040404040000000FFFFFFFFFFBFBFBFBF808080808040404040400000000000FFFFFFFFFFBFBFBFBFBF8080808040404040400000000000FFFFFFFFFFBFBFBFBFBF80808080804040400000000000FFFFFFBFBFBFBFBF80808040404040400063E0B500996699FF00663399BBFF99DD99FF112277005544CCCC66AABB6600EE6600CC69E3B59765E1A36FE700FF1A006B7FB28B3099FFFFB094FFF700CEEEEE0073E6A24DBF88F558D74DB38080C0C080C080808060C08000A08040BE5BB477D9B3FF772070A0402040D0F0F0E010B489A0E4FF19264F00B641DE4F829E4780FF0000FF> store/blue <FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3BF8040FFBF804000FFBF804000FFBF8000BF8040FFBF804000FF804000FFBF804000FFBF804000FFBF804000FFBF804000FFBF804000FFBF4000FFBF804000FFBF804000FFBF804000FFBF804000FFBF804000FFBF00FFBF804000BF8040FFBF804000FFBF40FFBF8040004063E0B500FF3399FF88666666009966DDFFFF112277DD554499FFCCAABBCC99EE9966CC69E3B59765E1A36FE7BFCC8BEE2F7FB257606BFBB3B015322480FAEEB40073E6A24DBF88F558D756CAD050C080C08080C08060C080FF000040BE7A8C65D9B3E0852070C0802040D06050E010B476A0C40070264F00FC5AE050B4A0FF9000FF00FF> store BEGINBITMAPCOLORcz"z"z"6F6F7R4F6F76F6F7J"S3F78z8z8z4F9R3F94F9;z"S*F7F6<z"z"z"z0F6F7R#F6F70F6F70F6=z8z8z8z/F9R"F9/F9/F9J%J#F'O<FEFEFEFE5FEFEFEFEFEFEF9FEJ"8"J'Js"O<F9F9FFEFEF9F9F9FEP2F6F7J#8#J"JrP#FEFEF9F94F9P3F9J$:*8'?#8"9$8'8$:$8'OGFEFEFEFEFEFEFEF9F9FEFEFEFEFEFEF9FEFEFEFEF9FEFEFEFEFEFEF9FEFEFEFEFEFEFEFEFEFEFEF9FEFE@s"J1:"8%<"9#8)8"808%J$F6F7O2FEFEFEF9FEFEFEF9FEFEF9F9FEFEF9F9F9FEF9FEFEF9FEFEFEFEFEF9FEFEF9F9FEFEFEFEF9FEFEF9FEFEFEF9FEFEF9F9FEF9FEFEO.F6F6F7ArJ$H"@#9"9%:$9"<"<"J"F9O5F9F9F9F9F9F9FEF9F9F9F9F9F9F9FEFEF9O2F9@sJ"?'I"8#H%9%J#F7O1FEF9FEFEFEFEF9FEF9F9F9F9F9F9F9F9F9F9O6F7F7@tJ":$9&J">%?%9%J$F9O/FEFEF9FEFEF9F9F9F95FEFEF9FEFEFEF9FEFEFEF9FEFEO6F9F9F9J"8$9(8(8$8"9"<08"808"9"O<FEFEFEFEF9F9FEFEFEF9F9FEFEFEFEFEF9FEFEF9FEFEFEF9FEFEFEFEF9F9F9F9FEFEFEF9F9FEFEF9F9FEFEFEF9F9F9F9FEFEFEF9F9FEFEFEJs9$9";"x;':$8%:$:$8sJsO<F9F9F9F9F9FEF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9O;F7J&JtOMFEF9F9F9F9PLF9J(OMF9FEFEFEFEFEF9=z8z8z8z/F7R"F7/F7/F7rF"J"F"F%F7F7R#F7F7F7F7F7F7'z&F6F6F6F6F6F7S)EEF6F6F6F6F68$J%F9F9F9S+F9F9F9F7J5O+QEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEJ5O*QGFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFFJ#z#O*EEFEQCEEFFEEJ#J#O*FEEEQCEEFFJ#J#O*EEFEQCFFEEJ#9#J#J#4FEFEFEFE=FEEEQCEEFFJ#J#O*EEFEQCFFEEJ%9%8)<#J#=FEFEFEFEFEFEFEFEFEFEEEFEFEEEFEFEFEEEQCEEFFJ.9"A#J#<FEFEEEEEFEFEEEFEFEEEEEFEFEFEEEFEQCFFEEJ%A&<#J#>FEEEEEEEEEEEEEEEEEFEEEQCEEFFJ&:#;"A#J#<EEEEFEFEFEFEFEEEEEFEQCFFEEJ"8"9%E#J#>EEFEEEEEEEEEFEEEQCEEFFJ-=#=#<#J#4EEFEFEEEFEFEEEEEFEFEEEEEFEFEFEFEEEFEQCFFEEJ":.E#J#7FEEEFEFEFEFEEEEEEEFEFEFEFEEEFEEEQCEEFFJ&9%9%8#:#<#J#5EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFEQCFFEEJ#J#O*FEEEQCEEFFJ#J#O*EEFEQCFFEEJ#J#O*FEEEQCEEFFJ5O*QGEEFEEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEJ5O*QGFEEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFJzO*QGEEJ5OJQ'FEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEJ5OIQ(FEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEFEEEJ#z"OIEEFEQ%EEFFJ#J#OIFEEEQ$FFEEJ#J#OIEEFEQ$EEFFJ'J#@#J#4FEFEFEFEFEFEO#FEFEFEEEQ$FFEEJ&J#J#6EEEEEEFEFEO.EEFEQ$EEFFJ%9%9%8#8#8#8%8);#<#J#<FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEEFEFEEEFEFEFEFEFEEEQ$FFEEJ5B'9"8%B#J#;4FEFEEEEEFEFEEEFEFEEEEEFEFEEEFEFEEEEEFEFEFEFEEEEEFEFEFEFEFEEEFEEEFEQ$EEFFJ(=%9):$A#9":#<#J#6FEFEFEFEEEEEEEFEEEEEEEFEEEEEEEEEEEFEFEFEFEEEEEEEEEEEEEFEEEQ$FFEEJ%8$9&8&J"H#J#6EEEEEEEEFEFEFEEEEEFEFEFEEEEEFEFEFE6EEEEFEQ$EEFFJ%;"8"9"8"J#J#;FEFEEEEEEEFEEEFEHFEEEQ$FFEEJ%9%:)G":#<#J#BFEFEEEEEFEFEEEEEEEFEFEEEEEFEFEEEFEFEFEEEFEQ$EEFFJ5B'<%B#J#;4EEFEFEFEEEFEFEEEFEFEFEFEEEEEEEFEFEFEFEEEEEFEFEFEFEEEEEFEFEEEFEEEQ$FFEEJ#<v9%:#8#:%8#:&8#<#J#4EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFEQ$EEFFJ#J#OIFEEEQ$FFEEJ#J#OIEEFEQ$EEFFJ#J#OIFEEEQ$FFEEJ5OIQ(EEFEEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFF&J5B%F7F7F7F7F7ODQ(FEEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEFFEEF7F7F7F7&JzC&F6F6F6F6F6ODQ'EEF6F6F6F6F68$J%F9F9F9S+F9F9F9F7<z"z"z0F6F7R4F6F71F6;z8z8z1F9R3F91F97z8z8z5F7R3F74F7"J"J"F76F7R4F7ENDBITMAP%%EndBinary324 399.57 531 639 R7 XV4 8 Q0 X(frame .login) 324 633.67 T(pack .login -padx 10 -pady 10) 324 623.67 T(frame .login.userFrame) 324 603.67 T(label .login.userFrame.userLabel \134) 324 593.67 T(    -text \322User:\323) 324 583.67 T(entry .login.userFrame.userEntry) 324 573.67 T(pack .login.userFrame -f) 324 553.67 T(ill x -pady 5) 439.2 553.67 T(pack .login.userFrame.userLabel \134) 324 543.67 T(    -side left) 324 533.67 T(pack .login.userFrame.userEntry \134) 324 523.67 T(    -side left -expand yes -f) 324 513.67 T(ill x) 463.2 513.67 T(frame .login.passwdFrame) 324 493.67 T(label .login.passwdFrame.passwdLabel \134) 324 483.67 T(    -text \322Password:\323) 324 473.67 T(entry .login.passwdFrame.passwdEntry) 324 463.67 T(pack .login.passwdFrame -f) 324 443.67 T(ill x -pady 5) 448.8 443.67 T(pack .login.passwdFrame.passwdLabel \134) 324 433.67 T(    -side left) 324 423.67 T(pack .login.passwdFrame.passwdEntry \134) 324 413.67 T(    -side left -expand yes -f) 324 403.67 T(ill x) 463.2 403.67 T324 252 531 351 R7 XV0 X(frame .login) 324 345.67 T(pack .login -padx 10 -pady 10) 324 335.67 T(entryf) 324 315.67 T(ield .login.user \134) 352.8 315.67 T(    -labeltext \322User:\323) 324 305.67 T(pack .login.user -f) 324 295.67 T(ill x -pady 5) 415.2 295.67 T(entryf) 324 275.67 T(ield .login.passwd \134) 352.8 275.67 T(    -labeltext \322Password:\323) 324 265.67 T(pack .login.passwd -f) 324 255.67 T(ill x -pady 5) 424.8 255.67 T0 10 Q(FIGURE 2) 346.21 227.18 T1 F( - [incr W) 392.6 227.18 T(idgets] Login screen) 431.35 227.18 T0 F(FIGURE 1) 359.33 380.18 T1 F( - T) 405.72 380.18 T(cl/Tk Login screen) 419.46 380.18 T0 -208 1000 792 CFMENDPAGE%%EndPage: "2" 2%%Page: "3" 3612 792 0 FMBEGINPAGE[0 0 0 1 0 0 0][ 0 1 1 0 1 0 0][ 1 0 1 0 0 1 0][ 1 1 0 0 0 0 1][ 1 0 0 0 0 1 1][ 0 1 0 0 1 0 1][ 0 0 1 0 1 1 0] 7 FrameSetSepColorsFrameNoSep0 0 0 1 0 0 0 K0 0 0 1 0 0 0 K0 0 0 1 0 0 0 K0 0 0 1 0 0 0 K1 10 Q0 X0 0 0 1 0 0 0 K(gin between the label and its associated widget may be) 72 429.62 T(given. Alignment is provided by adjusting the mar) 72 417.62 T(gins) 273.48 417.62 T(of a group of Labeledwidget based mega-widgets.) 72 405.62 T(Currently) 72 381.62 T(, our login screen lacks a method of cancella-) 109.68 381.62 T(tion barring closure from the window manager decora-) 72 369.62 T(tion. Since this is not the most elegant method of) 72 357.62 T-0.24 (window removal, \322OK\323 and \322Cancel\323 buttons seem like) 72 345.62 P(worthy additions. A well styled application would also) 72 333.62 T-0.22 (make the buttons be of equal width and signify a default) 72 321.62 P(button associated with striking the return key through) 72 309.62 T(the appearance of an encompassing sunken ring. The) 72 297.62 T(Buttonbox class provides this functionality) 72 285.62 T(, making but-) 243.02 285.62 T(ton management simple. As a manager widget, the But-) 72 273.62 T(tonbox controls the orientation, separation, and size of) 72 261.62 T-0.18 (its button components. Buttons are added with the \324add\325) 72 249.62 P(command. The \324default\325 command allows speci\336cation) 72 237.62 T(of a button within a sunken ring. Figure 4 presents the) 72 225.47 T(improved login screen.) 72 213.47 T-0.01 (Expanding further) 72 189.47 P-0.01 (, a truly useful login screen should be) 144.63 189.47 P(a modal toplevel dialog widget. The [incr W) 72 177.47 T(idgets] Dia-) 249.35 177.47 T(log class supports global, application, and non-modal) 72 165.47 T(dialogs. The dif) 72 153.47 T(ference being the degree of blocking.) 134.87 153.47 T(Global

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -