日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了在Linux/Gnome中同時右對齊和換行SWT標簽中的文本的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個問題,在使用Ubuntu Linux/Gnome時出現,但似乎不是在Windows上(如其中一個答案所示),在創建新標簽時,我無法同時使用SWT.RIGHT | SWT.WRAP,以便使文本右對齊和可換行。

背景:

我在向導中使用了一個簡單的2列網格布局,以創建動態數量的行數,每行有一個標簽和一個文本字段。我希望標簽具有固定的大小,并使其中的文本右對齊,如下所示:

      label 1: [Text field 1]
Another label: [Text field 2]
 Another label
  with wrapped [Text field 3]
         text: 

網格布局的創建方式如下:

GridLayout gl = new GridLayout();
gl.numColumns = 2;
composite.setLayout(gl);

這是我嘗試創建行的方式(每行有一個標簽和一個文本字段):

for (String labelText : labelTexts) {
    Label fieldLabel = new Label(this.composite, SWT.RIGHT | SWT.WRAP | SWT.BORDER );
    fieldLabel.setText(labelText);
    GridData labelGridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
    labelGridData.widthHint = 160;
    fieldLabel.setLayoutData(labelGridData);

    Text textField = new Text(this.composite, SWT.BORDER);
    GridData textGridData = new GridData(GridData.FILL_HORIZONTAL);
    textGridData.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
    textGridData.widthHint = 248;
    textField.setLayoutData(textGridData);
}

問題在于上面的SWT.RIGHT | SWT.WRAP部分,因為同時使用它們不起作用。那么,我如何才能繞過這一點,同時將標簽中的文本右對齊,并使文本換行?

推薦答案

簡短回答:

使用StyledText而不是標簽-所有條件相同。

詳細答案:

GTK中有許多關于此”特性”的錯誤(120256是一個很好的切入點),其中大多數錯誤標記為彼此重復,大多數錯誤標記為GTK+2.4/2.6,有些錯誤標記為已修復。然而,在2011年的gtk2+版本2.22(針對Maverick Market)中,錯誤似乎具有極強的彈性。

讀完這篇錯誤報告后,我在整個SWT源代碼樹中搜索WordWrap關鍵字,看起來Steve Northover男孩使用StyledText控件比使用Label控件更好地解決了錯誤。

我重用了Favonius測試用例(很多Favonius;-),這顯然是個好兆頭。

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class RightAlign2
{
    public static void main(String[] args)
    {

        Display display = new Display();
        Shell shell = new Shell(display);
        GridLayout layout = new GridLayout();
        layout.numColumns = 2;
        shell.setLayout(layout);
        shell.setText("Alignment Test");

        String[] labelTexts = new String[]{"label 1:","Another label:","Another label with wrapped text:"};

        for (String labelText : labelTexts)
        {
            StyledText  fieldText = new StyledText(shell, SWT.RIGHT |SWT.WRAP | SWT.BORDER );
            fieldText.setText(labelText);
            GridData labelGridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
            labelGridData.widthHint = 100;
            fieldText.setLayoutData(labelGridData);

            Text textField = new Text(shell, SWT.BORDER);
            GridData textGridData = new GridData(GridData.FILL_HORIZONTAL);
            textGridData.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
            textGridData.widthHint = 248;
            textField.setLayoutData(textGridData);
        }

        shell.pack();
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) display.sleep();
        }
        display.dispose();

    }
}

這篇關于在Linux/Gnome中同時右對齊和換行SWT標簽中的文本的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:Gnome Linux SWT 右對齊 換行 文本 標簽
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定