Re: Re: text size in GUIKit
- To: mathgroup at smc.vnet.net
- Subject: [mg50958] Re: [mg50872] Re: [mg50862] text size in GUIKit
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Wed, 29 Sep 2004 03:15:41 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <200409240841.EAA21793@smc.vnet.net> <200409250555.BAA05036@smc.vnet.net>
- Reply-to: murray at math.umass.edu
- Sender: owner-wri-mathgroup at wolfram.com
OK. But now how do I change the font size of a field label? I tried replacing the label with a StyleForm expression, but that is not accepted. For example, in your "first variant", I edited it to be: GUIRun[ Widget["Panel", { {Widget["Label", {"text" -> StyleForm["Input:", FontSize -> 36]}], Widget["TextField", {"text" -> "Some text.", "columns" -> 12}, Name -> "myText"]}, Script[ fnt = PropertyValue[{"myText", "font"}]; newFnt = InvokeMethod[{fnt, "deriveFont"}, 36]; SetPropertyValue[{"myText", "font"}, newFnt]; ] }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}] ] An error message ensued: Widget::deferr: Input: is not valid GUI definition content. (with the word 'Input' in 36-point type!), and of course then the subsequent error message: GUIRun::nvalid: The GUI definition contains invalid content. Jeff Adams wrote: > On Sep 24, 2004, at 3:41 AM, Murray Eisenberg wrote: > > >>With the GUIKit, is there some way to force a larger font size for text >>input fields? > > > Hello, > > Most widgets that display text have a "font" property that you can get > or set. > > You can either construct a new instance of a font with an appropriate > call to > Widget["Font", InitialArguments -> {...}] but normally you want to > modify the > existing font used by the widget so that you preserve the chosen look > and feel > font for any given platform. > > A convenient method on Widget["Font"] is InvokeMethod[{font, > "deriveFont"}, fontSize_] > which returns a new instance of the font with only the size changed. > > Here are a few examples that modify this basic user interface: > > GUIRun[ > Widget["Panel", { > {Widget["Label", {"text" -> "Input:"}], > Widget["TextField", {"text" -> "Some text.", > "columns" -> 12}, Name -> "myText"]} > }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}] > ] > > to highlight how you can use the "deriveFont" method or create a > new Widget["Font"] instance based on an existing font or constructed > anew: > > In this first variant we use "deriveFont" with the default font of the > text field > and change its font size to 36: > > GUIRun[ > Widget["Panel", { > {Widget["Label", {"text" -> "Input:"}], > Widget["TextField", {"text" -> "Some text.", > "columns" -> 12}, Name -> "myText"]}, > Script[ > fnt = PropertyValue[{"myText", "font"}]; > newFnt = InvokeMethod[{fnt, "deriveFont"}, 36]; > SetPropertyValue[{"myText", "font"}, newFnt]; > ] > }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}] > ] > > > Here, we construct a new instance of Widget["Font"] but use the > existing properties > of the default font again, increasing its current size by 5: > > GUIRun[ > Widget["Panel", { > {Widget["Label", {"text" -> "Input:"}], > Widget["TextField", {"text" -> "Some text.", > "columns" -> 12}, Name -> "myText"]}, > Script[ > fnt = PropertyValue[{"myText", "font"}]; > args = {PropertyValue[{fnt, "fontName"}], PropertyValue[{fnt, > "style"}], > PropertyValue[{fnt, "size"}] + 5}; > newFnt = Widget["Font", InitialArguments -> args]; > SetPropertyValue[{"myText", "font"}, newFnt]; > ] > }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}] > ] > > > Lastly, you can also construct a new font from literal names and sizes > though this > may not work on all platforms depending upon what font names you use: > > GUIRun[ > Widget["Panel", { > {Widget["Label", {"text" -> "Input:"}], > Widget["TextField", {"text" -> "Some text.", > "columns" -> 12}, Name -> "myText"]}, > Script[ > args = {"Monospaced", PropertyValue[{"class:java.awt.Font", > "Bold"}], 18}; > newFnt = Widget["Font", InitialArguments -> args]; > SetPropertyValue[{"myText", "font"}, newFnt]; > ] > }, WidgetLayout -> {"Border" -> {{5, 5}, {5, 10}}}] > ] > > > In all cases above, once you construct a new font instance you can use > this single font and > set it as the font property value for all or as many widgets in your > user interface as you want. > You can also give this font instance a name using the Name -> "myFont" > option and > reference this font in the rest of your user interface using a > WidgetReference["myFont"] call > > Jeff Adams > Wolfram Research > > -- Murray Eisenberg murray at math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street fax 413 545-1801 Amherst, MA 01003-9305
- References:
- text size in GUIKit
- From: Murray Eisenberg <murray@math.umass.edu>
- Re: text size in GUIKit
- From: Jeff Adams <jeffa@wolfram.com>
- text size in GUIKit