package com.test.cxm.plugin01.perspective;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
public class HelloWorldSWT {
public static void main(String args[]){
Display display=Display.getDefault();
Shell shell=new Shell();
shell.setSize(327,253);
shell.setText("mmm");
shell.setLayout(new FillLayout());
//创建文本框
final Text text=new Text(shell,SWT.MULTI);
//创建列表
final List list=new List(shell,SWT.SINGLE);
list.setItems(new String[]{"1","2","3"});
//创建只读下拉框
final Combo combo1=new Combo(shell,SWT.READ_ONLY);
combo1.setItems(new String[]{"String1","string2","string3"});
combo1.setText("string2");
//创建可编辑的下拉框
final Combo combo2=new Combo(shell,SWT.DROP_DOWN);
combo2.setItems(new String[]{"String1","string2","string3"});
//创建表格
final Table table=new Table(shell,SWT.SINGLE|SWT.BORDER|SWT.SELECTED);
table.setHeaderVisible(true);
table.setLinesVisible(true);//默认没有表格线,true的话可以看到
TableColumn c1=new TableColumn(table, SWT.NULL);
c1.setText("name");
c1.pack();
TableColumn c2=new TableColumn(table, SWT.NULL);
c2.setText("Age");
c2.pack();
TableItem item1=new TableItem(table, SWT.NULL);
item1.setText(new String[]{"cccc","25"});
TableItem item2=new TableItem(table, SWT.NULL);
item2.setText(new String[]{"rrrr","26"});
//创建树
//SWT.SINGLE 创建一颗单选树
//SWT.MULTI 创建一个多选树
//SWT.CHECK 创建一个单选框树
final Tree tree=new Tree(shell,SWT.CHECK);
for(int i=1;i<4;i++){
TreeItem grandP=new TreeItem(tree, 0);
grandP.setText("cxm"+i);
for(int j=1;i<4;i++){
TreeItem parent=new TreeItem(grandP, 0);
parent.setText("son"+j);
for(int k=1;k<4;k++){
TreeItem child=new TreeItem(parent, 0);
child.setText("child"+j);
}
}
}
//复合部件
//它可以作为其他小部件的容器
//SWT.BORDER 创建一个具有边框的复合部件
//SWT.NO_RADIO_GROUP 组件子单选按钮的行为
//SWT.H_SCROLL 创建一个具有水平滚动条的复合组件
//SWT.V_SCROLL 创建一个具有垂直滚动条的复合组件
Composite com=new Composite(shell, SWT.BORDER);
final Button bn=new Button(com, SWT.PUSH);
bn.setBounds(25, 25, 50, 80);
bn.setText("sss");
//组group,是一种特殊的复合组件,它用蚀刻的边框和可选的标签包围了子部件
//每个组件都包含在组的边框内,并相对应组自我调整大小
Group group=new Group(shell,SWT.NULL);
group.setText("group");
final Button bns=new Button(group, SWT.PUSH);
bns.setBounds(25, 25, 800, 50);
bns.setText("hahah");
//选项卡文件夹,用于在一个窗口内把信息组织为多个页面
//点击tab标签,可以使该页面置于前端,tab可以包含图片和文本
final TabFolder tabf=new TabFolder(shell, SWT.BORDER);
for(int i=1;i<4;i++){
TabItem ti=new TabItem(tabf, SWT.NULL);
ti.setText("tab"+i);
Composite cm=new Composite(tabf, SWT.NULL);//每个便签页面都有个复合组件
ti.setControl(cm);
Button bnss=new Button(cm, SWT.PUSH);
bnss.setBounds(25, 25,80, 50);
bnss.setText("sss"+i);
}
//菜单
//SWT.CASCADE 创建一个带有子菜单的级联菜单
//SWT.PUST 创建一个标准的菜单
//SWT.SEPARATOR 创建一个分割线
Menu menu =new Menu(shell,SWT.BAR);
shell.setMenuBar(menu);
MenuItem mi=new MenuItem(menu,SWT.CASCADE);
mi.setText("sss");
Menu subM=new Menu(shell,SWT.DROP_DOWN);
//以最后设置的menu为准
mi.setMenu(subM);
MenuItem mi2=new MenuItem(subM, SWT.NULL);
mi2.setText("eee");
mi2.setAccelerator(SWT.CTRL+'S');
MenuItem sep=new MenuItem(subM, SWT.SEPARATOR);
MenuItem ex=new MenuItem(subM, SWT.NULL);
ex.setText("exit");
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}
display.dispose();
}
}
分享到:
相关推荐
### 创建窗口小部件与AppWidget详解 在Android系统中,窗口小部件(AppWidget)是一种能够让用户在Home屏幕上获取应用信息和快捷操作的小部件,它也是实现Launcher功能的一部分。创建AppWidget主要涉及以下几个关键...
Android提供了丰富的窗口部件库,其中包含了诸如TextView、Button等常用的元素。本篇文章将详细探讨如何在Android中使用这些基本的窗口部件,尤其是TextView和Button。 首先,我们来看TextView,它是最基础的文本...
其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式,以达到美化图形界面的目的。 本篇文章中,我们就通过一个实际的例子,使用QSS和PyQt5的配置属性,实现图形用户界面的...
5. **Dock Widgets**:QDockWidget允许你在窗口内创建可停靠的区域,可以用来承载其他控件或小部件。用户可以自由地将这些Dock Widgets拖放到窗口的不同位置,或者选择隐藏它们。 6. **中央部件**:QMainWindow有一...
开发者使用`setWidget()`方法将`QToolBar`实例放入`QDockWidget`中,这样工具栏就可以像其他窗口部件一样进行浮动和停靠操作。 实现`QToolBar`在`QDockWidget`中的浮动和停靠,你需要以下步骤: 1. 创建`QToolBar`...
3.1使用布局小部件设计页面框架 3.1.1小部件与布局小部件简介 3.1.2使用面板组织页面元素 3.1.3使用容器小部件设计页面布局 3.2可移动的小部件微架构 3.2.1自定义小部件的基础知识 3.2.2内容小部件的基类实现 3.2.3...
Conrod一个完全使用Rust编写的易于使用的2D GUI库。...Builder模式入门安装Rust和Cargo运行Conrod示例让我们创建一个GUI设置基本窗口(使用piston_window)Conrod Setup实例化窗口小部件窗口小部件的位置和位置
第3章页面布局设计 3.1使用布局小部件设计页面框架 3.1.1小部件与布局小部件简介 3.1.2使用面板组织页面元素 3.1.3使用容器小部件设计页面布局 3.2可移动的小部件微架构 3.2.1自定义小部件的基础知识 3.2.2内容小...
这涉及到对`QTabWidget`和其子部件`QTabBar`的自定义以及窗口管理的一些基本概念。 首先,我们需要了解`QTabWidget`的基本结构。`QTabWidget`由两部分组成:`QTabBar`和`QStackedWidget`。`QTabBar`显示标签并处理...
这本书主要讲解了 Excel VBA 编程的基础知识和应用实例,共计 150 例,涵盖了 Excel VBA 中的常用对象及其属性和方法,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件...
Excel VBA 编程实例涵盖了 Excel VBA 中的常用对象,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件操作等。 实例讲解 ...
对于初学者来说,通过这个小实例,可以更好地理解和掌握Qt的使用,为后续更复杂的项目打下基础。 在学习和实践中,不断深入研究Qt的文档,熟悉其API和设计模式,将使你能够创建功能丰富的跨平台应用程序。Qt小实例...
在这个例子中,我们创建了一个`QWidget`实例,然后为这个窗口部件设置了一个垂直布局。 + **向垂直布局中添加窗口部件:** ```cpp QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = ...
在这个例子中,我们创建了一个`QWidget`实例,然后为这个窗口部件设置了一个水平布局。 + **向水平布局中添加窗口部件:** ```cpp QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = ...
通过具体实例和详细解析,帮助读者掌握Qt窗口背景设置的核心技巧。 ### 一、Qt窗口背景设置概述 在Qt中,可以通过多种方式来设置窗口的背景。其中最常用的方法是利用`setStyleSheet`函数配合CSS样式表。这种方式...
在这个例子中,我们创建了一个`QWidget`实例,然后为这个窗口部件设置了一个网格布局。 + **向网格布局中添加窗口部件:** ```cpp QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = ...
最后,系统Shell编程允许开发者更深入地集成到Windows环境中,比如创建自定义的文件关联、上下文菜单项,甚至实现桌面小部件。这需要理解和使用Windows API,如ShellExecute函数,以实现与操作系统更紧密的整合。 ...
- **布局管理(Layout Management)**: 支持将子窗口部件以网格或流式布局进行组织。 **2. 创建主窗口** 创建一个`QMainWindow`实例,然后设置其属性和组件: ```cpp #include #include #include #include ...