精华内容
下载资源
问答
  • 1.顶层容器什么是顶层容器?当我们使用Java进行图形编程的时候,图在哪里绘制呢?我们需要一个能够提供图形绘制的容器,这个容器就被称为顶层容器,你也可以把它想象成一个窗口。顶层容器是进行图形编程的基础,一切...

    1.顶层容器

    什么是顶层容器?当我们使用Java进行图形编程的时候,图在哪里绘制呢?我们需要一个能够提供图形绘制的容器,这个容器就被称为顶层容器,你

    也可以把它想象成一个窗口。顶层容器是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器中。在Swing中,我们有三种可以使用的顶层容器,

    它们分别是:

    JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。

    JDialog:和JFrame类似,只不过JDialog是用来设计对话框。

    JApplet:用来设计可以在嵌入在网页中的Java小程序。

    如果需要使用Swing制作一个窗口类程序,我们的代码看起来应该是这样:

    import javax.swing.*;

    public class KyodaiUI

    extends JFrame {

    ……

    }

    2.控件

    控件是构成应用程序界面的基本元素,按钮、文本框、进度条等,这些都是控件。控件(这里我们只讨论可视化控件)又可以分为容器控件和非容器控件。从字面

    意义上来理解,容器控件就是能包含其他控件的特殊控件,例如,Java中的JPanel控件就属于容器型控件,我们可以在JPanel中放置按钮、文本框

    等非容器控件,你甚至可以在JPanel中再放置若干个JPanel控件(值得注意的是,顶层容器也是容器型控件,每一个窗口应用程序中有且只能有一个顶

    层容器控件,换句话说,顶层容器不能包括在其他的控件中)。

    Java中的容器控件有很多,除刚才提到的JPanel外,还有

    JTabbedPane、JScrollPane等,非容器控件有JButton、JLabel、JTextField等。如果你需要向某个容器型的控件

    中添加控件,你可以使用 add(Component comp) 方法来实现,如:

    JPanel panel = new JPanel();

    JButton button = new JButton();

    panel.add(button);

    3.边框

    虽然我们使用了不同前景色来区别不同的区域,然而却没有层次感,加上边框一定会漂亮许多。

    在Java中,所有以J打头的Swing控件都可以使用setBorder方法来为自己设置边框。边框有很多种,线型、凸起、凹下、空的

    展开全文
  • 所谓容器控件,即能容纳其他 SAP UI5 控件控件。 把控件放置在这些容器控件里,能够获得一些额外收益,比如页面间跳转时提供动画效果,本教程后续步骤也会深入介绍。 按照本文步骤实现的应用最终界面如下: 代码...

    本教程前十个步骤,我们只是简单的把 Button 和 Input 控件,直接放置 XML 视图中,如下图所示:

    从本步骤开始,我们将学习 sap.m 库里的两个容器控件,即 Page 和 Panel. 所谓容器控件,即能容纳其他 SAP UI5 控件的控件。

    把控件放置在这些容器控件里,能够获得一些额外收益,比如页面间跳转时提供动画效果,本教程后续步骤也会深入介绍。

    按照本文步骤实现的应用最终界面如下:

    代码地址:

    https://github.com/wangzixi-diablo/ui5-tutorial/tree/main/11

    同前一步骤相比,本步骤只有两个文件需要修改。

    App.view.xml

    <mvc:View
       controllerName
    展开全文
  • PyQt5入门(十五)容器控件

    千次阅读 2021-02-04 15:32:25
    使用容器控件的目的:使屏幕上有更多的控件 一.选项卡控件QTabWidget 什么是选项卡控件? 示例: 不同的选项卡控件对应了不同的不同的界面,就让也避免了东西太多一个页面放不下。 代码: 运行结果: 二.堆栈窗口...

    目录

    一.选项卡控件QTabWidget

    二.堆栈窗口控件QStackedWidget

    三.停靠控件QDockWidget

    四.容纳多文档的窗口


    使用容器控件的目的:使屏幕上有更多的控件

     

    一.选项卡控件QTabWidget

    什么是选项卡控件?

    示例:

    不同的选项卡控件对应了不同的不同的界面,就让也避免了东西太多一个页面放不下,也就是一个选项卡对应一个窗口。

    代码:

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    
    
    class TabWidget(QTabWidget): #直接一整个屏幕就是一个选项卡窗口
        def __init__(self,parent=None):
            super(TabWidget, self).__init__(parent)
            self.setWindowTitle('选项卡控件:QTabWidget')
            self.resize(400,200)
            #创建用于显示控件的窗口
            self.tab1=QWidget()
            self.tab2 = QWidget()
            self.tab3 = QWidget()
            #将窗口和选项卡绑定
            self.addTab(self.tab1,'选项卡1')
            self.addTab(self.tab2, '选项卡2')
            self.addTab(self.tab3, '选项卡3')
    
            self.tab1UI()
            self.tab2UI()
            self.tab3UI()
    
        def tab1UI(self):
            #表单布局
            layout=QFormLayout()
            layout.addRow('姓名',QLineEdit())
            layout.addRow('地址',QLineEdit())
            # 将第一个选项卡窗口重命名
            self.setTabText(0,'联系方式')
            self.tab1.setLayout(layout)#别忘了tab1就是一个窗口
    
        def tab2UI(self):
            layout=QFormLayout()
            sex=QHBoxLayout()#水平布局,横向排列
            #单选框
            sex.addWidget(QRadioButton('男'))
            sex.addWidget(QRadioButton('女'))
            layout.addRow(QLabel('性别'),sex)
            layout.addRow('生日',QLineEdit())
            self.setTabText(1,'个人详细信息')
            self.tab2.setLayout(layout)
    
        def tab3UI(self):
            layout=QHBoxLayout()
            layout.addWidget(QLabel('科目'))
            #复选框
            layout.addWidget(QCheckBox('物理'))
            layout.addWidget(QCheckBox('高数'))
            self.setTabText(2,'教育程度')
            self.tab3.setLayout(layout)
    
    
    if __name__=='__main__':
        app=QApplication(sys.argv)
        main=TabWidget()
        main.show()
        sys.exit(app.exec_())
    
    

    运行结果:

          

     

    二.堆栈窗口控件QStackedWidget

    通过索引来切换页面

    代码:

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    
    
    class StackedExample(QWidget): #直接一整个屏幕就是一个选项卡窗口
        def __init__(self,parent=None):
            super(StackedExample, self).__init__(parent)
            self.setWindowTitle('堆栈窗口控件:QStackedWidget')
            #self.resize(400,200)
            self.setGeometry(800,450,10,10)
            #列表控件
            self.list=QListWidget()
            self.list.insertItem(0,'联系方式')
            self.list.insertItem(1,'个人信息')
            self.list.insertItem(2,'教育程度')
    
            self.stack1=QWidget()
            self.stack2 = QWidget()
            self.stack3 = QWidget()
    
            self.tab1UI()
            self.tab2UI()
            self.tab3UI()
            #堆栈窗口控件对象
            self.stack=QStackedWidget()
            self.stack.addWidget(self.stack1)
            self.stack.addWidget(self.stack2)
            self.stack.addWidget(self.stack3)
    
            self.list.currentRowChanged.connect(self.display)
    
            hbox=QHBoxLayout()
            hbox.addWidget(self.list)
            hbox.addWidget(self.stack)
            self.setLayout(hbox)
    
        def tab1UI(self):
            #表单布局
            layout=QFormLayout()
            layout.addRow('姓名',QLineEdit())
            layout.addRow('地址',QLineEdit())
            self.stack1.setLayout(layout)#别忘了tab1就是一个窗口
    
        def tab2UI(self):
            layout=QFormLayout()
            sex=QHBoxLayout()#水平布局,横向排列
            #单选框
            sex.addWidget(QRadioButton('男'))
            sex.addWidget(QRadioButton('女'))
            layout.addRow(QLabel('性别'),sex)
            layout.addRow('生日',QLineEdit())
            self.stack2.setLayout(layout)
    
        def tab3UI(self):
            layout=QHBoxLayout()
            layout.addWidget(QLabel('科目'))
            #复选框
            layout.addWidget(QCheckBox('物理'))
            layout.addWidget(QCheckBox('高数'))
            self.stack3.setLayout(layout)
    
        def display(self,index):
            #通过索引来切换页面
            self.stack.setCurrentIndex(index)
    
    
    if __name__=='__main__':
        app=QApplication(sys.argv)
        main=StackedExample()
        main.show()
        sys.exit(app.exec_())
    
    

    运行结果:

     

    三.停靠控件QDockWidget

    代码:

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    
    
    class DockDemo(QMainWindow): #直接一整个屏幕就是一个选项卡窗口
        def __init__(self,parent=None):
            super(DockDemo, self).__init__(parent)
            self.setWindowTitle('停靠控件:QDockWidget')
            self.setGeometry(800,450,500,500)#x,y,w,h
            #self.resize(400, 200)
    
            layout=QHBoxLayout()
            #停靠控件对象
            self.items=QDockWidget('Dockable',self)
            #列表控件
            self.listWidget=QListWidget()
            self.listWidget.addItem('item1')
            self.listWidget.addItem('item2')
            self.listWidget.addItem('item3')
            #将列表放到停靠控件上
            self.items.setWidget(self.listWidget)
    
            self.setCentralWidget(QLineEdit('单行输入'))
            #设置一开始就是悬浮状态
            self.items.setFloating(True)
    
            #在窗口上设置停靠控件,且悬浮在右侧
            self.addDockWidget(Qt.RightDockWidgetArea,self.items)
    
    
    if __name__=='__main__':
        app=QApplication(sys.argv)
        main=DockDemo()
        main.show()
        sys.exit(app.exec_())
    
    

    运行结果:

          就像编译器里的一些左右侧的窗口一样,可随意拖动,缩小放大,调换位置等,自己试试吧!

     

    四.容纳多文档的窗口

    相当于窗口的容器,里面可以有很多子窗口,但子窗口只能在这里面移动。

    需要的类:

    容纳多文档:QMdiArea
    子窗口:       QMdiSubWindow

     

    代码:

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    
    
    class MultiWindows(QMainWindow): #直接一整个屏幕就是一个选项卡窗口
        count=0 #记录当前有多少个菜单项
        def __init__(self,parent=None):
            super(MultiWindows, self).__init__(parent)
            self.setWindowTitle('容纳多文档的窗口')
            self.setGeometry(800,450,500,400)#x,y,w,h
    
            #容纳多文档容器对象
            self.mdi=QMdiArea()
    
            bar=self.menuBar()
            file=bar.addMenu('File')
            file.addAction('New')
            file.addAction('cascade') #重叠
            file.addAction('Tiled')  #平铺
    
            file.triggered.connect(self.windowAction)
    
            self.setCentralWidget(self.mdi)
    
        def windowAction(self,q): #q是当前的单击菜单项,通过按钮名来进行不同的操作
            if q.text()=='New':
                self.count=self.count+1
                #子窗口对象
                sub=QMdiSubWindow()
                sub.setWidget(QTextEdit())
                sub.setWindowTitle('子窗口'+str(self.count))
                self.mdi.addSubWindow(sub)
                sub.show()
            #下面两个是对mdi中已有的窗口排布进行操作,而不是生成窗口
            elif q.text()=='cascade':
                self.mdi.cascadeSubWindows()
            elif q.text()=='Tiled':
                self.mdi.tileSubWindows()
    
    
    if __name__=='__main__':
        app=QApplication(sys.argv)
        main=MultiWindows()
        main.show()
        sys.exit(app.exec_())
    
    

    运行结果:

      先随机生成(New)四个窗口,再试试其他两个排版的效果 。

    重叠                       平铺

     

     

     

     

     

    展开全文
  • SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件 SAP UI5 初学者教程之四:XML 视图初探 SAP UI5 初学者教程之五:视图控制器初探 SAP UI5 初学者教程之六 - 了解 SAP UI5 的模块(Module)概

    一套适合 SAP UI5 初学者循序渐进的学习教程

    教程目录

    说明

    Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。

    在 Jerry 这篇文章 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发者,向 SAP UI5 开发领域转型的不易,因此我在业余时间设计了这份适合 SAP UI5 初学者的学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。这些知识点可能不像我的 UI5 源码分析系列文章那么深入,但力求浅显易懂,便于 SAP UI5 初学者理解。

    本教程每一个步骤的源代码,都存放在我的 Github 上,分别用文件夹 01,02,03 等等来标识。

    每一个步骤均是前一步骤的基础上,添加了若干新特性。建议零基础或者对 SAP UI5 知之甚少的初学者,按照顺序从第一个步骤开始循序渐进地学习,把这些代码下载到本地,配合教程的文字讲解,自己动手,以加深理解。

    大家如果对教程的每个步骤有任何疑问,欢迎在教程对应的步骤文章里给我评论,进行留言。

    本教程前十个步骤,我们只是简单的把 Button 和 Input 控件,直接放置 XML 视图中,如下图所示:

    从本步骤开始,我们将学习 sap.m 库里的两个容器控件,即 Page 和 Panel. 所谓容器控件,即能容纳其他 SAP UI5 控件的控件。

    把控件放置在这些容器控件里,能够获得一些额外收益,比如页面间跳转时提供动画效果,本教程后续步骤也会深入介绍。

    按照本文步骤实现的应用最终界面如下:

    代码地址:

    https://github.com/wangzixi-diablo/ui5-tutorial/tree/main/11

    实现细节见此文章:SAP UI5 初学者教程之十一 :SAP UI5 容器类控件 Page 和 Panel

    展开全文
  • Qt中的所有控件属于窗口, 因此这个也是所有控件类的基类。 如果一个QWidget类型的窗口中还有子窗口, 为了让子窗口有序排列, 需要给当前QWidget进行布局操作。 1.2 QFrame QFrame就是一个升级版的QWidget,...
  • 一、输入类控件 QLineEdit ​ 单选文本框,主要用来从界面获取数据,常用于获取用户名密码。 ​ 常用设置: ​ 字体字号设置 ​ 垂直、水平对齐设置 ​ 只读设置 ​ 输入模式: ​ Normal 正常模式 ​ NoEcho...
  • 容器控件容器控件1:面板Panel 属性: AutoScroll属性,设置面板滚动条是否可用,默认情况下是禁用false BorderStyle属性,设置面板边框风格,有None(默认),FixedSingle,Fixed3D三种。 BackColor、...
  • 1. 首先要明确遍历的目的,以及容器内各个控件的ID ,精确定位方便查看该控件的具体属性及参数 2. 遍历容器内的控件,可以为后续可拖拽控件功能的实现带来功能属性获悉。 foreach (Control c in gb_SerailBox....
  • /// 当Panel等容器类控件 失去焦点再获得焦点后,滚动条复位的解决方式 /// </summary> /// <param name="activeControl"></param> /// <returns></returns> prot...
  • java 容器类

    2021-03-10 03:31:42
    A:packageAuthorBook;importjava.util.*;publicclassAuthor_Book_Information{Stringisbn;Stringtitle;Stringdate;Stringname;Stringdescription;Stringbirthdate;Stringphonenum;...A:package AuthorBook;...
  • BubbleView for Android BubbleView is a control/container with an arrow for Android, which can be fully customized by code or XML layout file.Arrow direction: up, down, left, right or noneShould arro.....
  • Some Container Widget in Android AppAndroid应用中一些常用的容器控件1. Android中常见的容器控件Spinner 下拉控件主要的属性:entries: 在xml布局文件中绑定数据源(* entries="@array/languages")(可以不设置,即...
  • 有时候我们可能会面临这样一种情况:所开发的程序包含了太多的控件,导致一个窗口装载不下或者装载的控件太多而不美观。本篇博文就来解决这个问题,即如何在现有的窗口空间中装载更多的控件
  • Qt控件----容器

    2021-08-19 17:10:26
    文章目录容器一、QGroupBox1. 控件简介2. 用法示例3. 运行效果二、QScrollArea1. 控件简介2. 用法示例3. 运行效果三、QToolBox1. 控件简介2. 用法示例3. 运行效果四、QTabWidget1. 控件简介2. 用法示例3. 运行效果五...
  • Activity容器控件

    2021-07-28 14:22:56
    1.IfElseActivity有两个IfElseBranch子控件,分别作为IfElse的两个分支容器,系统自动添加, 2.其中左边(为真件条)的IfElseBranch容器要设Condition 3.IfElse左边(为真件条)的IfElseBranch容器的Condition有两个条件...
  • 1、java使用到的图形主要在java.awt 与javax.swing包中。2、java.awt 与 javax.swing包的区别:① java.awt中使用的图形都是依赖于...组件的类别:容器组件、非容器组件 1、布局管理器:布局管理就是用于指定组...
  • WPF控件分类

    2021-08-05 20:58:58
    1、控件 分类 控件是咱们的门面,控件有很多,但是如果仔细去分析,也是有规律可循的,根据其作用...Window、Button等控件属于此类,因为只能容纳一个控件作为其内容,所以经常借助布局控件来规划其内容。它们的共同父
  • 控件的分类

    2021-07-28 08:03:22
    控件是咱们的门面,控件有很多,但是如果仔细去分析,也是有规律可循的,根据其作用,我们可以把控件分类,日常工作中我们打交道最多的控件无外乎6: 布局控件:是可以容纳多个控件或者嵌套其他布局的控件,用于在...
  • EJB跟我们之前所了解的组件,框架,包,等都有什么关系?接下来主要是从容器入手来理解这些概念.J2EE中容器充当中间件的角色。主要的容器包括:WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,...
  • Padding是一个可以设置内边距的容器控件,属性如下: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:path_provider/path_provider.dart'; import 'package:...
  • Java Swing(用户界面开发包)是在AWT的基础上构建的一套...下面我们会对Swing中容器类以及Swing组件进行简单的介绍,先去了解这些组件的用处。Swing容器类顶级容器JApplet:小应用程序类,需要依靠浏览器执行。JFrame...
  • 我们先看一看表示组件的组之间的一般关系。以Component为基础的一层次如下图所示,示意图中的箭头指向超类。这个示意图显示了Component的一些子类,其中有些对我们很重要。我们已经讨论了通往JFrame的这条链,...
  • Android自定义控件

    2021-05-26 06:09:25
    主要内容了解自定义控件对现有控件进行拓展创建复合控件重写View来实现全新控件自定义ViewGroup具体内容自定义控件可以是对现有控件进行拓展、创建复合控件、重写View实现全新控件,可根据需要不同选...
  • 4.Java基本数据类型及其封装 5.如果main方法被声明为private会怎样? 6.说明- -下public static void main(String argsQ])这段声明里每个关键字的作用 7.==与equals的区别 8.Object有哪些公用方法 9.为什么Java里...
  • 之前的自定义控件——初识自定义控件,我们了解到了自定义控件分为三种,自制控件,组合控件,拓展控件。而我们在自制控件1 开关按钮自制控件2 —— 自制控件 仿qq侧滑菜单也已经针对自制控件写了几个小demo现在,让...
  • 而在顶级元素里面只能有一个子元素,因此要有布局控件。 2、Window窗体属性 ①、窗体外观 WPF中默认窗口框架的外观,主要取决于Icon、Title、WindowStyle、ResizeMode等属性。 Icon 指定窗口的图标; Title 指定窗口...
  • C#语言 第四部分 图形界面编程(五) 布局容器类(1)从ContainerControl类继承的子类作为容器窗体,可以容纳除Form类对象外的其余窗体对象。在所有容器窗体内,最基本的就是顶级容器Form类以及面板容器Panel类。这两者...
  • 分组类控件主要包括容器控件(Panel),分组框控件(groupBox)和选项卡控件(TabControl)等控件。一、Panel控件Panel控件是由System.Windows.Forms.Panel类提供的,主要作用就是将其他控件组合一起放在一个面板上,使...
  • 如何让一个控件在另一个控件下面,直接操作下面代码:android:id="@+id/ly_dialogPersonCode_Title"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="10dp...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,612
精华内容 35,044
关键字:

属于容器类控件的是

友情链接: 扑克.zip