精华内容
下载资源
问答
  • 一、常用窗体属性 布局:AutoScroll - 内容溢出时是否显示滚动条AutoSize - 调整自身大小以适应内容Location - 位于显示左上角坐标StartPosition - 窗体第一次出现位置MaximumSize - 窗体可以调整到最大...

    一、常用窗体属性

    布局:
    AutoScroll - 内容溢出时是否显示滚动条
    AutoSize - 调整自身的大小以适应内容
    Location - 位于显示左上角的坐标
    StartPosition - 窗体第一次出现的位置
    MaximumSize - 窗体可以调整到的最大大小
    MiniimumSize -窗体可以调整到的最小大小
    padding - 窗体内部间距
    Size - 窗体的大小
    WindowState - 确定窗体运行时的状态(最大化或者最小化)
    ------------------------------
    窗口样式:
    ControlBox -确定窗体是否有菜单栏
    Icon -窗体图标

    MaximizeBox -是否有最大化 
    MinimizeBox - 是否有最小化
    HelpButton - 是否有帮助按钮
    Opacity -窗体的不透明度
    ShowIcon -是否显示窗体图标
    ShowInTaskbar -窗体是否出现在任务栏中
    TopMost -最高显示级别
    TransparencyKey -放到窗体时将显示的透明的颜色
    -----------------------------
    设计:
    Name -用来标识窗体名称

    -----------------------------
    数据:
    Tag - 与对象关联的用户定义数据
    -----------------------------
    外观:
    BackgroundImage -背景图片
    BackgroundImagelayout - 背景位置和布局
    BackColor -窗体的背景颜色
    Cursor -鼠标指正指到窗体时的样式
    FormBorderStyle -窗体边框和标题栏外观
    Text-标题
    -----------------------------
    杂项:
    AcceptButton -设置“接收”按钮用Enter键来实现功能
    CancelButton -设置“取消”按钮用Esc键来实现功能

    -----------------------------

    二、窗体分类

    1、普通窗体 可以拉伸,有最小化最大化按钮
    2、不可拉伸,不可最大化
    3、不可拉伸,无最大化最小化
    4、无边框窗体
    5、不规则窗体

    三、窗体设计

    窗体中显示文字 - Label
    用户输入内容 - TextBox passWordChar
    按钮 - Button
    复选框 - CheckBox
    单选框 - RadioButton
    分组容器 - Panel

    转载于:https://www.cnblogs.com/xtq0313/p/5885563.html

    展开全文
  • 既然你是如此抽象,我也会这样做.如果我们将所有模糊的单词删除为“Portal”,“企业应用程序”等等……...您将使用的模型取决于您将提供的代码类型.1.-您只提供一些工具和常用的商业代码.可能是适合您需求的clasica...

    既然你是如此抽象,我也会这样做.如果我们将所有模糊的单词删除为“Portal”,“企业应用程序”等等……我们最终得到的是三个Web应用程序和一个公共库或框架(企业应用程序).

    看到它的应用程序尽可能简单.您有三个开发人员需要开发三个Web应用程序.您将提供一些用于构建其应用程序的常用代码.您将使用的模型取决于您将提供的代码类型.

    1.-您只提供一些工具和常用的商业代码.可能是适合您需求的clasical库. (在Java EE环境中,您必须考虑如何利用持久性缓存级别2为单个数据存储区共享会话工厂的优势)

    2.-您将提供持久性,缓存,安全性,审计等共享服务……您将需要一个服务层作为第一个选项.您将拥有共享状态,因此您只需要一个实例.

    3.-更常见的情况是您为公共服务提供了一些业务API和服务层.

    您没有指出任何强制您为场景使用更复杂的解决方案的要求.

    编辑:

    关于它是否首选rmi(ejb-client)或webservices.我总是使用rmi来传达地理位置相近的应用程序.它使用很简单,协议比webservices快得多(你可以阅读很多关于这个主题的搜索,在google上搜索rmi webservices性能).

    另一方面,rmi对网络延迟更为明智,需要特殊的防火墙配置,而且它更像网络服务.因此,如果我假装向第三方提供服务或连接地理上稀疏的服务器,我会更喜欢Web服务甚至REST.

    关于最后一个问题,在同一服务器中部署一个或十个应用程序没有任何区别.部署费用对于使用该应用程序的开销微不足道.当然,你必须把它作为一个普遍的假设.显然,应用程序的大小和部署方式会对内存消耗和其他内容产生影响.

    您必须考虑到可以根据需要轻松更改此决策.因此,正如我所说,您可以从简单的解决方案开始,如果您在部署应用程序时遇到问题,您可以轻松地重构您的耳朵.

    展开全文
  • Session和cookie关系:Session存储在服务器端,cookie存储在客户端 使用会话实现商品抢购 #index models.py from django.db import models # Create your models here. class Product(models.Model): id = model

    1.会话控制Session

    Session和cookie的关系:Session存储在服务器端,cookie存储在客户端

    使用会话实现商品抢购

    #index models.py
    from django.db import models
    
    # Create your models here.
    class Product(models.Model):
        id = models.AutoField('序号',primary_key = True)
        name = models.CharField('名称',max_length=50)
        slogan = models.CharField('简介',max_length=50)
        sell = models.CharField('宣传',max_length=50)
        price = models.IntegerField('价格')
        photo = models.CharField('相片',max_length=50)
    
        def __str__(self):
            return self.name
    
    
    #views.py
    from django.contrib.auth.decorators import login_required
    
    
    
    # Create your views here.
    from django.shortcuts import redirect, render
    
    from index.models import Product
    
    
    @login_required(login_url = 'admin/login')
    def index(request):
        id = request.GET.get('id','')
        if id:
            idList = request.session.get('idList',[])
            if not id in idList:
                idList.append(id)
            request.session['idList'] = idList
            return redirect('/')
        products = Product.objects.all()
        return render(request,'index.html',locals())
    
    
    def orderView(request):
        idList = request.session.get('idList',[])
        del_id = request.GET.get('id','')
        if del_id  in idList:
            idList.remove(del_id)
            request.session['idList'] = idList
        products = Product.objects.filter(id__in=idList)
        return render(request,'order.html',locals())
    

    两个页面之间的数据转化由Session实现:

    • 商城首页实现Session的读取和写入。首先获取Session的idList,如果当前请求存在参数id,就判断Session的idList是否存在参数请求的id值,若不存在,则将id的值写入idList。
    • 订单信息页实现Session的读取和删除。首先获取Session的idList,如果当前请求存在请求参数id,就判断Session的idList是否存在请求参数id,若存在,则从Session的idList删除请求参数id的值。

    2. 缓存机制

    Django 5种缓存方式:

    • Memcached:一个高性能的分布式内存对象缓存系统,用于动态网站,以减轻数据库负载。适合超大型网站使用。
    • 数据库缓存:缓存信息存储在网站数据库的缓存列表中,缓存表可以在项目的配置文件中配置,适合大中型网站使用。
    • 文件系统缓存:缓存信息以文本文件格式保存,适合中小型网站使用。
    • 本地内存缓存:Django默认的缓存保存方式,将缓存存放在计算机的内存中,只适用于项目的开发测试。
    • 虚拟缓存:Django内置的虚拟缓存,实际上只提供缓存接口,不能缓存数据,只适用于项目开发测试。

    以数据库缓存为例,配置如下:

    CACHES = {
        # 默认缓存数据表
        'default': {
            'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
            'LOCATION': 'my_cache_table',
            # TIMEOUT设置缓存的生命周期,以秒为单位,若为None,则永不过期
            'TIMEOUT': 60,
            'OPTIONS': {
                # MAX_ENTRIES代表最大缓存记录的数量
                'MAX_ENTRIES': 1000,
                # 当缓存到达最大数量之后,设置剔除缓存的数量
                'CULL_FREQUENCY': 3,
            }
        },
        # 设置多个缓存数据表
        'MyDjango': {
            'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
            'LOCATION': 'MyDjango_cache_table',
        }
    }
    

    缓存的4种使用:

    • 全站缓存:将缓存作用于整个网站的全部页面。一般情况下不采用这种方式。
    • 视图缓存:当用户发送请求时,若该请求的视图函数已经生成缓存数据,则以缓存数据作为响应内容,可省去视图函数处理请求的时间和资源。
    • 路由函数:作用与视图函数相同,不同在于当两个路由指向同一个视图函数,分别访问两个路由地址时,路由缓存会判断路由地址是否已经生成缓存从而决定是否执行视图函数。
    • 模板缓存:对模板某部分的数据设置缓存,常用于模板内容变动较少的情况。

    全站缓存的例子:

    MIDDLEWARE = [
        # 配置全站缓存
        # 'django.middleware.cache.UpdateCacheMiddleware',
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        # 使用中文
        'django.middleware.locale.LocaleMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
        # 配置全站缓存
        'django.middleware.cache.FetchFromCacheMiddleware',
    ]
    # 设置缓存的生命周期
    CACHE_MIDDLEWARE_SECONDS = 15
    # 设置缓存数据保存在数据表my_cache_table中
    # 属性值default来自于缓存配置CACHES的default属性
    CACHE_MIDDLEWARE_ALIAS = 'default'
    # 设置缓存表字段cache_key的值
    # 用于同一个Django项目多个站点之间的共享缓存
    CACHE_MIDDLEWARE_KEY_PREFIX = 'MyDjango'
    
    

    视图缓存例子:

    from django.views.decorators.cache import cache_page
    参数cache与配置属性CACHE_MIDDLEWARE_ALIAS相同
    参数key_prefix与配置属性CACHE_MIDDLEWARE_KEY_PREFIX相同
    参数timeout与配置属性CACHE_MIDDLEWARE_SECONDS相同
    CACHE_MIDDLEWARE_SECONDS的优先级高于参数timeout
    @cache_page(timeout=10, cache='MyDjango', key_prefix='MyView')
    

    路由缓存:

    urlpatterns = [
        网站首页设置路由缓存
        path('', cache_page(timeout=10, cache='MyDjango', key_prefix='MyURL')(views.index), name='index'),
        path('', views.index, name='index'),
    ]
    

    模板缓存:

    <html>
    <body>
        <div>
        {# 设置模版缓存 #}
        {% load cache %}
        {# 10代表生命周期 #}
        {# MyTemp代表缓存数据的cache_key字段 #}
        {# using="MyDjango"代表缓存数据表 #}
        {% cache 10 MyTemp using="MyDjango" %}
            <div>Hello Django</div>
        {# 缓存结束 #}
        {% endcache %}
        </div>
    </body>
    </html>
    
    

    3.CSRF防护

    CSRF(Cross-Site Request Forgery,跨站请求伪造)一种对网站的恶意利用,窃取网站的用户信息来制造恶意请求。
    在中间件中设置CSRF防护功能,在模板文件的表单标签中加入{%csrf_token%},想取消表单的CSRF,在相应的视图函数中添加@csrf_exempt

    4.消息框架

    完成某个功能造作时,网站会有相应的消息提示。
    消息框架是由中间件SessionMiddleware、MessageMiddleware、INSTALLED_APPS的django.contrib.messages和django.contrib.session共同实现。一共定义了5种消息类型:

    类型 级别 说明
    DEBUG 10 开发过程的调试信息,但运行时无法生成信息
    INFO 20 提示信息,如用户信息
    SUCCESS 25 提示当前操作执行成功
    WARNING 30 警告当前操作存在风险
    ERROR 40 提示当前操作错误

    5.分页功能

    调用Paginator函数

    def index(request, page):
        # 获取模型PersonInfo的全部数据
        person = PersonInfo.objects.all().order_by('-age')
        # 设置每一页的数据量为2
        p = Paginator(person, 2, 1)
        try:
            pages = p.get_page(page)
        except PageNotAnInteger:
            # 如果参数page的数据类型不是整型,就返回第一页数据
            pages = p.get_page(1)
        except EmptyPage:
            # 若用户访问的页数大于实际页数,则返回最后一页的数据
            pages = p.get_page(p.num_pages)
        return render(request, 'index.html', locals())
    

    6.国际化和本地化

    1.Django的国际化和本地化时默认开启的,在配置文件中USE——I18N配置,需要依赖GNUGettext工具。
    
    2.安装GNUGettext成功后,在根目录下黄健文件夹language,配置文件中添加在中间件LocaleMiddleware,新增配置属性LOCALE_PATHS和LANGUAGES
    
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.locale.LocaleMiddleware',
        'django.middleware.common.CommonMiddleware',
        ...
        ]
    LOCALE_PATHS = (
        os.path.join(BASE_DIR, 'language'),
    )
    LANGUAGES = (
        ('en', ('English')),
        ('zh', ('中文简体')),
    )
    
    3.在路由、视图、模板里使用国际化设置
    
    #MyDjango urls.py
    urlpatterns = i18n_patterns(
        path('', include(('index.urls', 'index'), namespace='index')),
    )
    #APP urls.py
    urlpatterns = [
        path('', index, name='index'),
    ]
    
    
    #views.py
    from django.shortcuts import render
    from django.utils.translation import gettext
    from django.utils.translation import gettext_lazy
    
    def index(request):
        if request.LANGUAGE_CODE == 'zh':
            language = gettext('Chinese')
            # language = gettext_lazy('Chinese')
        else:
            language = gettext('English')
            # language = gettext_lazy('English')
        print(language)
        return render(request, 'index.html', locals())
    
     #模板文件
     <!DOCTYPE html>
    <html>
    <head>
        {% load i18n %}
        <title>{% trans "Choice language" %}</title>
    </head>
    <body>
    <div>
        {#将配置属性LANGUAGES进行列举,显示网站支持的语言#}
        {% get_available_languages as languages %}
        {% trans "Choice language" %}
        {% for lang_code, lang_name in languages %}
            {% language lang_code %}
                <a href="{% url 'index:index'%}">{{ lang_name }}</a>
            {% endlanguage %}
        {% endfor %}
    </div>
    <br>
    <div>
    {% blocktrans %}
        The language is {{ language }}
    {% endblocktrans %}
    </div>
    </body>
    </html>
    
    4.执行本地化操作,命令行执行python manage.py makemessages -1 zh 出现异常,早language问价减重设置编写翻译内容
    
    #: .\index\views.py:7
    msgid "Chinese"
    msgstr "简体中文"
    
    #: .\index\views.py:10
    msgid "English"
    msgstr "English"
    
    #: .\templates\index.html:5 .\templates\index.html:11
    msgid "Choice language"
    msgstr "请选择语言:"
    
    #: .\templates\index.html:20
    #, python-format
    msgid ""
    "\n"
    "    The language is %(language)s\n"
    msgstr ""
    "\n"
    "    当前语言为: %(language)s\n"
    
    5.以管理员身份运行命令行,执行python manage.py compilemessages
    

    7.单元测试

    在test.py中继承TestCase编写测试用例

    8.自定义中间件

    一个完整的中间件设有5个钩子函数,Django将用户请求到网站响应的过程进行划分,每个阶段对应执行某个钩子函数。

    • inti():初始化函数,运行Django将自动执行该函数。
    • process_request():完成请求对象的创建,但用户访问的网址尚未与网站的路有四只匹配。
    • process_view():完成用户访问的网址与路由地址的匹配,但尚未执行视图函数。
    • process_exception():在执行视图函数的期间发生异常,比如代码异常、主动抛出404异常等。
    • process_response():完成视图函数的执行,但尚未将响应内容返回浏览器。

    实现Cookie反爬虫

    #myMiddwear.py
    from django.utils.deprecation import MiddlewareMixin
    from django.utils.timezone import now
    from django.shortcuts import Http404
    
    
    class MyMiddleware(MiddlewareMixin):
        def process_view(self, request, func, args, kwargs):
            if func.__name__ != 'index':
                salt = request.COOKIES.get('value', '')
                try:
                    request.get_signed_cookie('MySign', salt=salt)
                except Exception as e:
                    print(e)
                    raise Http404('当前Cookie无效哦!')
    
        def process_response(self, request, response):
            salt = str(now())
            response.set_signed_cookie(
                'MySign',
                'sign',
                salt=salt,
                max_age=10
            )
            response.set_cookie('value', salt)
            return response
    
    展开全文
  • 对于许多应用程序来说,2018 年是非常好一年,尤其是自由开源的应用程序。尽管各种 Linux 发行版都自带了很多默认的应用程序,但用户也可以自由地选择使用它们或者其它任何免费或付费替代方案。下面汇总了备份工具...

    对于许多应用程序来说,2018 年是非常好的一年,尤其是自由开源的应用程序。尽管各种 Linux 发行版都自带了很多默认的应用程序,但用户也可以自由地选择使用它们或者其它任何免费或付费替代方案。

    下面汇总了

    备份工具

    Rsync

    $ rsync [OPTION...] SRC... [DEST]

    Timeshift

    BT(BitTorrent) 客户端

    Deluge

    使用以下命令在 Ubuntu 和 Debian 安装 Deluge。$ sudo add-apt-repository ppa:deluge-team/ppa

    $ sudo apt-get update

    $ sudo apt-get install deluge

    qBittorent

    使用以下命令在 Ubuntu 和 Debian 安装 qBittorent。$ sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable

    $ sudo apt-get update

    $ sudo apt-get install qbittorrent

    Transmission

    使用以下命令在 Ubuntu 和 Debian 安装 Transmission。$ sudo add-apt-repository ppa:transmissionbt/ppa

    $ sudo apt-get update

    $ sudo apt-get install transmission-gtk transmission-cli transmission-common transmission-daemon

    云存储

    Dropbox

    使用以下命令在 Ubuntu 和 Debian 安装 Dropbox。$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf - [On 32-Bit]

    $ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf - [On 64-Bit]

    $ ~/.dropbox-dist/dropboxd

    Google Drive

    Mega

    命令行编辑器

    Vim

    使用以下命令在 Ubuntu 和 Debian 安装 Vim。$ sudo add-apt-repository ppa:jonathonf/vim

    $ sudo apt update

    $ sudo apt install vim

    Emacs

    使用以下命令在 Ubuntu 和 Debian 安装 Emacs。$ sudo add-apt-repository ppa:kelleyk/emacs

    $ sudo apt update

    $ sudo apt install emacs25

    Nano

    使用以下命令在 Ubuntu 和 Debian 安装 Nano。$ sudo add-apt-repository ppa:n-muench/programs-ppa

    $ sudo apt-get update

    $ sudo apt-get install nano

    下载器

    Aria2

    使用以下命令在 Ubuntu 和 Debian 安装 Aria2。$ sudo apt-get install aria2

    uGet

    使用以下命令在 Ubuntu 和 Debian 安装 uGet。$ sudo add-apt-repository ppa:plushuang-tw/uget-stable

    $ sudo apt update

    $ sudo apt install uget

    XDM

    使用以下命令在 Ubuntu 和 Debian 安装 XDM。$ sudo add-apt-repository ppa:noobslab/apps

    $ sudo apt-get update

    $ sudo apt-get install xdman

    电子邮件客户端

    Thunderbird

    使用以下命令在 Ubuntu 和 Debian 安装 Thunderbird。$ sudo add-apt-repository ppa:ubuntu-mozilla-security/ppa

    $ sudo apt-get update

    $ sudo apt-get install thunderbird

    Geary

    使用以下命令在 Ubuntu 和 Debian 安装 Geary。$ sudo add-apt-repository ppa:geary-team/releases

    $ sudo apt-get update

    $ sudo apt-get install geary

    Evolution

    使用以下命令在 Ubuntu 和 Debian 安装 Evolution。$ sudo add-apt-repository ppa:gnome3-team/gnome3-staging

    $ sudo apt-get update

    $ sudo apt-get install evolution

    财务软件

    GnuCash

    使用以下命令在 Ubuntu 和 Debian 安装 GnuCash。$ sudo sh -c 'echo "deb http://archive.getdeb.net/ubuntu $(lsb_release -sc)-getdeb apps" >> /etc/apt/sources.list.d/getdeb.list'

    $ sudo apt-get update

    $ sudo apt-get install gnucash

    KMyMoney

    使用以下命令在 Ubuntu 和 Debian 安装 KmyMoney。$ sudo add-apt-repository ppa:claydoh/kmymoney2-kde4

    $ sudo apt-get update

    $ sudo apt-get install kmymoney

    IDE

    Eclipse IDE

    Netbeans IDE

    Brackets

    使用以下命令在 Ubuntu 和 Debian 安装 Brackets。$ sudo add-apt-repository ppa:webupd8team/brackets

    $ sudo apt-get update

    $ sudo apt-get install brackets

    Atom IDE

    使用以下命令在 Ubuntu 和 Debian 安装 Atom。$ sudo apt-get install snapd

    $ sudo snap install atom --classic

    Light Table

    使用以下命令在 Ubuntu 和 Debian 安装 Light Table。$ sudo add-apt-repository ppa:dr-akulavich/lighttable

    $ sudo apt-get update

    $ sudo apt-get install lighttable-installer

    Visual Studio Code

    即时通信工具

    Pidgin

    使用以下命令在 Ubuntu 和 Debian 安装 Pidgin。$ sudo add-apt-repository ppa:jonathonf/backports

    $ sudo apt-get update

    $ sudo apt-get install pidgin

    Skype

    使用以下命令在 Ubuntu 和 Debian 安装 Skype。$ sudo apt install snapd

    $ sudo snap install skype --classic

    Empathy

    使用以下命令在 Ubuntu 和 Debian 安装 Empathy。$ sudo apt-get install empathy

    Linux 防病毒工具

    ClamAV/ClamTk

    使用以下命令在 Ubuntu 和 Debian 安装 ClamAV 和 ClamTk。$ sudo apt-get install clamav

    $ sudo apt-get install clamtk

    Linux 桌面环境

    Cinnamon

    使用以下命令在 Ubuntu 和 Debian 安装 Cinnamon。$ sudo add-apt-repository ppa:embrosyn/cinnamon

    $ sudo apt update

    $ sudo apt install cinnamon-desktop-environment lightdm

    Mate

    使用以下命令在 Ubuntu 和 Debian 安装 Mate。$ sudo apt install tasksel

    $ sudo apt update

    $ sudo tasksel install ubuntu-mate-desktop

    GNOME

    使用以下命令在 Ubuntu 和 Debian 安装 Gnome。$ sudo apt install tasksel

    $ sudo apt update

    $ sudo tasksel install ubuntu-desktop

    KDE

    使用以下命令在 Ubuntu 和 Debian 安装 KDE。$ sudo apt install tasksel

    $ sudo apt update

    $ sudo tasksel install kubuntu-desktop

    Linux 维护工具

    GNOME Tweak Tool

    使用以下命令在 Ubuntu 和 Debian 安装 GNOME Tweak Tool。$ sudo apt install gnome-tweak-tool

    Stacer

    使用以下命令在 Ubuntu 和 Debian 安装 Stacer。$ sudo add-apt-repository ppa:oguzhaninan/stacer

    $ sudo apt-get update

    $ sudo apt-get install stacer

    BleachBit

    Linux 终端工具

    GNOME 终端

    使用以下命令在 Ubuntu 和 Debian 安装 Gnome 终端。$ sudo apt-get install gnome-terminal

    Konsole

    使用以下命令在 Ubuntu 和 Debian 安装 Konsole。$ sudo apt-get install konsole

    Terminator

    使用以下命令在 Ubuntu 和 Debian 安装 Terminator。$ sudo apt-get install terminator

    Guake

    使用以下命令在 Ubuntu 和 Debian 安装 Guake。$ sudo apt-get install guake

    多媒体编辑工具

    Ardour

    使用以下命令在 Ubuntu 和 Debian 安装 Ardour。$ sudo add-apt-repository ppa:dobey/audiotools

    $ sudo apt-get update

    $ sudo apt-get install ardour

    Audacity

    使用以下命令在 Ubuntu 和 Debian 安装 Audacity。$ sudo add-apt-repository ppa:ubuntuhandbook1/audacity

    $ sudo apt-get update

    $ sudo apt-get install audacity

    GIMP

    使用以下命令在 Ubuntu 和 Debian 安装 Gimp。$ sudo add-apt-repository ppa:otto-kesselgulasch/gimp

    $ sudo apt update

    $ sudo apt install gimp

    Krita

    使用以下命令在 Ubuntu 和 Debian 安装 Krita。$ sudo add-apt-repository ppa:kritalime/ppa

    $ sudo apt update

    $ sudo apt install krita

    Lightworks

    OpenShot

    使用以下命令在 Ubuntu 和 Debian 安装 `Openshot。$ sudo add-apt-repository ppa:openshot.developers/ppa

    $ sudo apt update

    $ sudo apt install openshot-qt

    PiTiV

    使用以下命令在 Ubuntu 和 Debian 安装 PiTiV。$ flatpak install --user https://flathub.org/repo/appstream/org.pitivi.Pitivi.flatpakref

    $ flatpak install --user http://flatpak.pitivi.org/pitivi.flatpakref

    $ flatpak run org.pitivi.Pitivi//stable

    音乐播放器

    Rhythmbox

    使用以下命令在 Ubuntu 和 Debian 安装 Rhythmbox。$ sudo add-apt-repository ppa:fossfreedom/rhythmbox

    $ sudo apt-get update

    $ sudo apt-get install rhythmbox

    Lollypop

    使用以下命令在 Ubuntu 和 Debian 安装 Lollypop。$ sudo add-apt-repository ppa:gnumdk/lollypop

    $ sudo apt-get update

    $ sudo apt-get install lollypop

    Amarok

    使用以下命令在 Ubuntu 和 Debian 安装 Amarok。$ sudo apt-get update

    $ sudo apt-get install amarok

    Clementine

    使用以下命令在 Ubuntu 和 Debian 安装 Clementine。$ sudo add-apt-repository ppa:me-davidsansome/clementine

    $ sudo apt-get update

    $ sudo apt-get install clementine

    Cmus

    使用以下命令在 Ubuntu 和 Debian 安装 Cmus。$ sudo add-apt-repository ppa:jmuc/cmus

    $ sudo apt-get update

    $ sudo apt-get install cmus

    办公软件

    Calligra 套件

    使用以下命令在 Ubuntu 和 Debian 安装 Calligra 套件。$ sudo apt-get install calligra

    LibreOffice

    使用以下命令在 Ubuntu 和 Debian 安装 LibreOffice。$ sudo add-apt-repository ppa:libreoffice/ppa

    $ sudo apt update

    $ sudo apt install libreoffice

    WPS Office

    屏幕截图工具

    Shutter

    使用以下命令在 Ubuntu 和 Debian 安装 Shutter。$ sudo add-apt-repository -y ppa:shutter/ppa

    $ sudo apt update

    $ sudo apt install shutter

    Kazam

    使用以下命令在 Ubuntu 和 Debian 安装 Kazam。$ sudo add-apt-repository ppa:kazam-team/unstable-series

    $ sudo apt update

    $ sudo apt install kazam python3-cairo python3-xlib

    Gnome Screenshot

    使用以下命令在 Ubuntu 和 Debian 安装 Gnome Screenshot。$ sudo apt-get update

    $ sudo apt-get install gnome-screenshot

    录屏工具

    SimpleScreenRecorder

    使用以下命令在 Ubuntu 和 Debian 安装 SimpleScreenRecorder。$ sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder

    $ sudo apt-get update

    $ sudo apt-get install simplescreenrecorder

    recordMyDesktop

    使用以下命令在 Ubuntu 和 Debian 安装 recordMyDesktop。$ sudo apt-get update

    $ sudo apt-get install gtk-recordmydesktop

    文本编辑器

    Atom

    使用以下命令在 Ubuntu 和 Debian 安装 Atom。$ sudo apt-get install snapd

    $ sudo snap install atom --classic

    Sublime Text

    使用以下命令在 Ubuntu 和 Debian 安装 Sublime Text。$ sudo apt-get install snapd

    $ sudo snap install sublime-text

    Geany

    使用以下命令在 Ubuntu 和 Debian 安装 Geany。$ sudo apt-get update

    $ sudo apt-get install geany

    Gedit

    使用以下命令在 Ubuntu 和 Debian 安装 Gedit。$ sudo apt-get update

    $ sudo apt-get install gedit

    备忘录软件

    Evernote

    Evernote 在 Linux 上没有官方提供的软件,但可以参考

    Everdo

    Taskwarrior

    使用以下命令在 Ubuntu 和 Debian 安装 Taskwarrior。$ sudo apt-get update

    $ sudo apt-get install taskwarrior

    视频播放器

    Banshee

    使用以下命令在 Ubuntu 和 Debian 安装 Banshee。$ sudo add-apt-repository ppa:banshee-team/ppa

    $ sudo apt-get update

    $ sudo apt-get install banshee

    VLC

    使用以下命令在 Ubuntu 和 Debian 安装 VLC。$ sudo add-apt-repository ppa:videolan/stable-daily

    $ sudo apt-get update

    $ sudo apt-get install vlc

    Kodi

    使用以下命令在 Ubuntu 和 Debian 安装 Kodi。$ sudo apt-get install software-properties-common

    $ sudo add-apt-repository ppa:team-xbmc/ppa

    $ sudo apt-get update

    $ sudo apt-get install kodi

    SMPlayer

    使用以下命令在 Ubuntu 和 Debian 安装 SMPlayer。$ sudo add-apt-repository ppa:rvm/smplayer

    $ sudo apt-get update

    $ sudo apt-get install smplayer

    虚拟化工具

    VirtualBox

    使用以下命令在 Ubuntu 和 Debian 安装 VirtualBox。$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

    $ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

    $ sudo apt-get update

    $ sudo apt-get install virtualbox-5.2

    $ virtualbox

    VMWare

    浏览器

    Chrome

    使用以下命令在 Ubuntu 和 Debian 安装 Google Chrome。$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

    $ sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

    $ sudo apt-get update

    $ sudo apt-get install google-chrome-stable

    Firefox

    使用以下命令在 Ubuntu 和 Debian 安装 Firefox Quantum。$ sudo add-apt-repository ppa:mozillateam/firefox-next

    $ sudo apt update && sudo apt upgrade

    $ sudo apt install firefox

    Vivaldi

    展开全文
  • 在web开发中,说到客户端数据存储,可能第一时间想到的是cookies,这是一种web开发常见的客户端存储数据的方法。它的最大优点是兼容性好,几乎所有浏览器都具有这个功能。缺点是存储量太小(4k)、数据访问不够灵活...
  • 客户端用密码身份验证依然是一种常用的基本的验证方法,但对于些安全性要求更高的的应用程序需要其它一些更进一步的身份验证。在Adobe AIR 应用程序中,用户可以使用TLS(Transport Layer Security Protocol,安全...
  • 一款跨平台开源Github客户端应用程序,提供更丰富功能,更好地体验,逐步更好日常管理和维护个人Github,提供更好更方便驾车体验~~Σ( ̄。 ̄ ノ)涉及。项目涉及各种常用控件,网络,数据库,设计模式,...
  • 客户端应用程序 - 是需要安装在用户电脑上才可以使用程序特点:不需要联网也可以打开使用部分功能但是现在情况是许多功能依然需要互联网支持 代码部分在用户电脑上执行 WinForm常用窗体属性: 布局: ...
  • 常用缩略语 CSS:级联样式表 DOM:文档对象模型 HTML:超文本标记语言 URL:用户界面 XHTML:可扩展HTML XML:可扩展标记语言 XSL:可扩展样式表语言 XSLT:可扩展样式表语言转换 Health Level...
  • 在C#中,构建一个简单通信程序是非常简单,因为.NET Framework已经为我们的应用程序提供了System.Net和System.Net.Sockets命名空间,并可以通过引用这两个命名空间开发出多种网络应用程序。 通过查阅MSDN,可以...
  • .net2.0的winform客户端常用的与服务端通信方式是通过webservice,最近在用dottrace对客户端做性能测试的时候发现,客户端程序启动以后,第一次调用某一个webservice的方法是,总是特别慢,大概需要0.8-1秒钟的...
  • 客户端

    2014-04-29 17:13:00
    因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。 对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如...
  • 匿名客户端的传输安全 ...必须使用安全套接字层 (SSL) 证书对服务器进行身份验证,并且客户端必须信任服务器证书。客户端不通过任何机制进行身份...有关示例应用程序,请参见WS Transport Security。有关 传输安...
  • JS在客户端特殊应用

    2010-12-20 09:51:23
    javascript取得机器名,用户名,读写注册表,启动应用程序 //javascript有个特殊的对象ActiveXObject,通过它可以访问windows的本地文件...下面是一些常用的方法,每个都经过了测试。 //取得机器名,登录域及登...
  • 1、启动VS Express for Windows,新建项目,在项目模板中选择“空白应用程序(Windows Phone)”。 2、既然要接收通知,肯定少不了Toast、磁贴这几样常用的通知的,故我们得先准备一些图片。 在“解决方案资源...
  • 3DMAX疯狂模渲大师贵宾版3.6.0.1版客户端程序疯狂模渲大师A贵宾版(作者“食住玩”)专门针对3dmax软件复杂操作,疯狂模渲大师提高了学习效率,疯狂模渲大师致力于提高设计师工作效率,为绘图者便利操作。...
  • 准备写总结的前十分钟,在昏暗的灯光下,疯狂的戳着F6键,咦,我的键盘怎么不亮了,按到手抽筋,果断关机,在开机,感叹:果然啊,老师说的没错,关机能解决百分之...在HTTP协议下的客户端/服务端模式的信息交换过程...
  • 服务端:服务端是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端...因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对
  • 如今,大多数用于与某些服务器通信移动应用程序都使用REST服务。 这些服务也是JavaScript或jQuery的常用惯例。 现在,我知道在Java中为REST服务创建客户端的2种方法,在本文中,我将尝试演示这两种方法,希望它们...
  • 常用的打包工具要么过于复杂,要么需要注册,实际上通常 的应用程序打包无需复杂的脚本,基本的作用是复制执行文件到客户端、建立程序菜单、快捷方式、控制面板删除连接,这几个作用,其他初始化、脚本等完全是应用...
  • 开发环境:Visual Studio 2017 + devexpress应用程序框架(XAF)18.1 + SqlServer2016 简介: CIIP是用于快速构建企业级信息系统工具,基于XAF开发。 CIIP.Designer:用于快速,以信息表单方式维护元数据。与...
  • 缓存原理&...一般情况下数据存在数据库中,应用程序直接操作数据库。 当访问量上万,数据库压力增大,可以采取方案有: 读写分离,分库分表 当访问量达到10万、百万,需要引入缓存。 将已经访问过...
  •   在开发 Web 应用程序时,通常需要应用...目前,比较常用的客户端技术包括 HTML 语言、CSS、Flash 和客户端脚本技术。   ✓ HTML HTML 语言是客户端技术的基础,主要用于显示网页信息,由浏览器解释执行,它不需要
  • 本项目源码是一套可以秒杀新浪官方客户端的微博项目源码。使用IntelliJ IDEA开发,已经在谷歌商店发布, 界面干净,常用功能有。顶端空白区一触回顶功能很赞,页面简捷,联网快速,无广告,程序精巧,使用权限不多...
  • 产品标识符常用语通信应用程序标识自身、由软件名和版本组成。使用产品标识符大多数领域也允许列出作为应用程序主要部分子产品,由空格分隔。按照惯例,产品要按照相应重要程度依次列出,以便标识应用程序。 ...
  • Web SQL 数据库 API 并不是 HTML5 规范一部分,但是它是一个独立规范,引入了一组使用 SQL 操作客户端数据库 APIs。 如果你是一个 Web 后端程序员,应该很容易理解 SQL 操作。 你也可以参考我们SQL 教程...
  • 一、跟踪Spring MVC的请求 ...前端控制器是常用的web应用程序模式,在这里一个单实例的Servlet将请求委托给应用程序的其他组件来执行实际的处理。在Spring MVC 中,DispatcherServlet就是前端控制器。DispatcherS...
  • SOAP 是 Web 服务中最常用的协议,通常的 Web 服务使用 Java 语言编写,但众多的 PHP 程序员可能更喜欢使用 PHP 来完成整个 Web 应用程序的开发。本文介绍了使用 PHP5 中新增的 SOAP 扩展(ext/soap)进行 Web 服务...
  • Web应用程序状态管理

    2020-04-14 14:56:38
    文章目录web应用程序状态管理HTTP请求处理Response对象Response对象的常用方法Response对象属性使用Response对象设置CookieRequest对象Request对象属性获取客户端提交表单数据获取保存cookie信息读取服务器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,758
精华内容 703
关键字:

常用的客户端应用程序