GVKun编程网logo

MonoMac平台鼠标右键展开列表:RightMouseDown(magic mouse 右键)

9

最近很多小伙伴都在问MonoMac平台鼠标右键展开列表:RightMouseDown和magicmouse右键这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展angularjs–测

最近很多小伙伴都在问MonoMac平台鼠标右键展开列表:RightMouseDownmagic mouse 右键这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展angularjs – 测试角度mousedown,mousemove,mouseup、C# •MouseDown •MouseDown •MouseUp 的先后顺序、delphi – 使用onmousedown,onmouseup和click事件时无法捕获所有点击、django1.8下的markdown、highlight、pagedown解决等相关知识,下面开始了哦!

本文目录一览:

MonoMac平台鼠标右键展开列表:RightMouseDown(magic mouse 右键)

MonoMac平台鼠标右键展开列表:RightMouseDown(magic mouse 右键)

//鼠标右键点击事件
        public overridevoid RightMouseDown(NSEventtheEvent)
        {
            base.();
            NSMenutheMenu=new ("aTitle"            InsertItemBeep,SelectorBeepClickstringEmpty 0HonkHonkClick1PopUpContextMenuFilesTableView;//FilesTableView上显示
}
        //Selector
[Export)]
BeepClick()
ConsoleWriteLine csdnHonkClick}


官方文档:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MenuList/Articles/displayContextMenu.html

效果图:

angularjs – 测试角度mousedown,mousemove,mouseup

angularjs – 测试角度mousedown,mousemove,mouseup

在 angular docs的指令部分

它们大致提供了如何制作拖动物的示例.

我的问题是你如何测试他们的例子/实施:

var startX = 0,startY = 0;
  scope.x = 0;
  scope.y = 0;
  element.css({
    top: scope.y,left: scope.x
  });

  element.on('mousedown',function(event) {
    // Prevent default dragging of selected content
    event.preventDefault();
    startX = event.pageX - scope.x;
    startY = event.pageY - scope.y;
    $document.on('mousemove',mousemove);
    $document.on('mouseup',mouseup);
  });

  function mousemove(event) {
    scope.y = event.pageY - startY;
    scope.x = event.pageX - startX;
    element.css({
      top: scope.y + 'px',left: scope.x + 'px'
    });
  }

  function mouseup() {
    $document.off('mousemove',mousemove);
    $document.off('mouseup',mouseup);
  }
}

但这只适用于单个事件.

Angular的示例使用mousedown添加mousemove和mouseup事件侦听器,this stackoverflow answer使用triggerHandler–它可以防止冒泡/传播.

现在我(大致):

describe('on mousedown it',function(){
  it('moves a thing',function(){
    expect(scope.x).toBe(0);
    element.triggerHandler({type: 'mousedown',pageX: 0,pageY:0});
    element.triggerHandler({type: 'mousemove',pageX:10,pageY:10);
    expect(scope.x).toBe(10);
  });
});

测试失败了. scope.x记录为0.
做什么?

好的,我看这个的方式,在示例中,拖动代码在一个指令中.因此,在查看测试时,因为指令正在操纵指令附加到的元素的位置,所以我会断言元素位置的变化而不是断言内部作用域变量的值.

鉴于我们有一个名为myDraggable的指令,它的应用如此< span my-draggable =“”> Drag Me< / span>,在测试时:

>让我们编译指令.

var scope = $rootScope.$new();
var elem = $compile(‘< span my-draggable =“”> Drag Me< / span>‘)(范围);

>然后将鼠标按下事件发送到编译元素

elem.triggerHandler({type:’mousedown’,pageX:0,pageY:0});
>之后,因为鼠标移动事件附加到$document,让鼠标移动事件发送到$document

$document.triggerHandler({type:’mousemove’,pageX:10,pageY:20});
>最后,让我们断言编译元素的最终位置

期待(elem.css( ‘顶’)).TOBE( ’20像素’)
期待(elem.css( ‘左’)).TOBE( ’10px的’)

当我们把它们放在一起时,

describe('on mousedown it',function(){
  beforeEach(module('dragModule'));

  it('moves a thing',inject(function($compile,$rootScope,$document){
    var scope = $rootScope.$new();
    var elem = $compile('<span my-draggable="">Drag Me</span>')(scope);
    $rootScope.$digest();

    elem.triggerHandler({type: 'mousedown',pageY:0});
    $document.triggerHandler({type: 'mousemove',pageX: 10,pageY:20});

    expect(elem.css('top')).toBe('20px');
    expect(elem.css('left')).toBe('10px');
  }));
});

这是关于测试指令的推荐方法的官方角度文档:https://docs.angularjs.org/guide/unit-testing#testing-directives

这是实施我刚刚谈到的所有内容的plunker:https://plnkr.co/edit/QgWiVlbNOKkhn6wkGxUK?p=preview

C# •MouseDown •MouseDown •MouseUp 的先后顺序

C# •MouseDown •MouseDown •MouseUp 的先后顺序

鼠标按下事件发生的顺序

  • MouseDown event.

  • Click event.

  • MouseDownevent.

  • MouseUp event.

可以写个测试,放一个picture控件

private void pictureBox1_Click(object sender, EventArgs e)
        {
            str1 += "\t 单击图片";
            label1.Text = str1;

        }

        private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            str1 += "\t 鼠标单击";
            label1.Text = str1;


        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            str1 = "";
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
                str1 += "\t 鼠标按下左键";
            else if (e.Button == System.Windows.Forms.MouseButtons.Right)
                str1 += "\t 鼠标按下右键";

            label1.Text = str1;

        }

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            str1 += "\t 鼠标弹起";
            label1.Text = str1;


        }

在图片位置单击鼠标    执行的顺序

pictureBox1_MouseDown

pictureBox1_Click

pictureBox1_MouseClick

pictureBox1_MouseUp
显示的是   鼠标按下左键 单击图片  鼠标单击  鼠标弹起

delphi – 使用onmousedown,onmouseup和click事件时无法捕获所有点击

delphi – 使用onmousedown,onmouseup和click事件时无法捕获所有点击

我正在尝试从TPanel组件创建自定义按钮.为此,我为onmousedown和onmouseup事件提供了一个覆盖(做一些绘图),并且我使用了onclick事件来处理点击.

不幸的是,如果我快速点击我的面板,其他每一次点击都会“丢失”,但我无法弄清楚原因.

即便是最简单的例子也没有在这方面失败.我创建了一个新的VCL应用程序,添加了一个列表框,一个面板,并按如下方式实现了事件:

procedure TForm1.Panel1Click(Sender: TObject);
begin
  listBox1.Items.Add('click');
end;

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X,Y: Integer);
begin
  listBox1.Items.Add('mouse down');
end;

procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X,Y: Integer);
begin
  listBox1.Items.Add('mouse up');
end;

结果如下:

mouse down
click
mouse up
mouse down
mouse up

等等……每次点击都会被忽略,但我不明白为什么.

有人可以解释一下吗?

解决方法

当您快速单击它时,您的面板正在处理双击.使用:
Panel1.ControlStyle := Panel1.ControlStyle - [csDoubleClicks]

将双击映射到点击. (在你的自定义控件中设置ControlStyle的构造函数).

csDoubleClicks The control can receive and respond to double-click
messages. Otherwise,map double-clicks into clicks.

TControl.ControlStyle

django1.8下的markdown、highlight、pagedown解决

django1.8下的markdown、highlight、pagedown解决

写作说明:

在看完python3的基本与法后,为了巩固自己对语言的掌握就使用django1.8写了个人博客的小程序。在对博客文章进行markdown处理的时候遇到了几个问题,希望这篇文章能够帮助到其他人。

markdown

markdown是一个很多程序员都喜欢的标记性语言,很多知名博客和网站都支持采用了这一编辑器。
例如:segmentfault、简书、当然还有锤子的便签。为了在django1.8中对自己的文章进行markdown
,可以使用以下几个步骤:


#首先安装markdown2
pip3 install markdown2

接下来我们在应用的文件夹下新建文件夹templatetags,再在templatetags下新建两个文件:
__init___.py、custom_markdown.py 两个文件。在custom_markdown.py 中加入如下代码:

import markdown2

from django import template
from django.template.defaultfilters import stringfilter
from django.utils.encoding import force_text
from django.utils.safestring import mark_safe

register = template.Library()

@register.filter(is_safe=True)
@stringfilter
def custom_markdown(value):
return mark_safe(markdown2.markdown(force_text(value),
        extras=["fenced-code-blocks", "cuddled-lists", "metadata", "tables", "spoiler"]))

现在templatetags文件夹就相当于你自己的一个包了。它的使用很简单,在需要的网页中引入custom_markdown,然后在需要进行
markdown的地方markdown就行了,如下:


{% extends "base.html" %}
{% load custom_markdown %}

{% block content %}
<div>
        <section>
            <header>
                <h2>{{ post.title }}</h2>

                    <p>
                        Time:  <ahref="#">{{ post.date_time|date:''Y /m /d''}}</a> <ahref="{% url ''search_tag'' tag=post.category %}">{{ post.category }}</a>
                    </p>
            </header>

                <div>
                    <p>
                        {{ post.content|custom_markdown }}
                    </p>
                </div>
        </section>
        {% include "duoshuo.html" %}
</div> <!-- /.blog-post -->
{% endblock %}

highlight.js 高亮代码

完成上面的内容markdown后,还不能达到大部人的预期效果,因为代码快部分没有高亮显示。接下来我们来对代码块进行处理。
highlight.js支持非常多语言的高亮,而且高亮的风格也非常丰富,我们先去官网根据自己的选择的语言下载下来,然后放入static文件夹
下,然后我们在基模版中如下使用就能实现高亮了:


<!DOCTYPE html>
{% load staticfiles %}
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>{% block title %}{% endblock %}</title>
     <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="{% static ''bootstrap-3.3.5/css/bootstrap.css'' %}" >
    <link rel="stylesheet" href="{% static ''blog_css/my_blog.css'' %}">

    <script src="{% static ''bootstrap-3.3.5/js/bootstrap.js'' %}"></script>
    <script src="{% static ''jquery-2.1.4.min.js'' %}"></script>

    <!-- jqcloud -->
    <script src="{% static ''jqcloud/jqcloud-1.0.4.js''%}"></script>
    <link rel="stylesheet" type="text/css" href="{% static ''jqcloud/jqcloud.css'' %}">

    <script src="{% static ''highlight/highlight.pack.js'' %}"></script>
    <link rel="stylesheet" type="text/css" href="{% static ''highlight/styles/monokai.css'' %}">
    <!--返回顶部-->
    <script src="{% static ''scrollup/jquery.scrollUp.js'' %}"></script>

</head>
<script>hljs.initHighlightingOnLoad();</script>
......

最终的显示效果如下:
图片描述

pagedown编辑器

完成前面的两步后我们,可能还需要在后台的文章编辑部分使用markdown的编辑器,这里我使用的是django-pagedown编辑器
。django-pagedown完美支持markdown语法,还能边写边预览,如果你觉得原生的界面比较丑的化还可以自己重写css。

#安装django-pagedown
pip3 install django-pagedown

安装好后,我们需要在settings.py中加入应用才能使用:


INSTALLED_APPS = (
''bootstrap_admin'',
''django.contrib.admin'',
''django.contrib.auth'',
''django.contrib.contenttypes'',
''django.contrib.sessions'',
''django.contrib.messages'',
''django.contrib.staticfiles'',
''Article'',
''pagedown'',

)

接下来在admin.py中加入如下代码(官方的步骤不适用于django1.8,会报错):


from django.contrib import admin
from .models import Author,Tag,Classification,Article
from pagedown.widgets import AdminPagedownWidget
from django import forms

# Register your models here.
# 定义自己的form
class ArticleForm(forms.ModelForm):
    content = forms.CharField(widget=AdminPagedownWidget())

    class Meta:
        model = Article
        fields = ''__all__''

class ArticleAdmin(admin.ModelAdmin):
    form = ArticleForm

admin.site.register(Author)
admin.site.register(Tag)
admin.site.register(Classification)
#注册的时候绑定
admin.site.register(Article,ArticleAdmin)

然后后台的效果图如下:
图片描述

我们今天的关于MonoMac平台鼠标右键展开列表:RightMouseDownmagic mouse 右键的分享已经告一段落,感谢您的关注,如果您想了解更多关于angularjs – 测试角度mousedown,mousemove,mouseup、C# •MouseDown •MouseDown •MouseUp 的先后顺序、delphi – 使用onmousedown,onmouseup和click事件时无法捕获所有点击、django1.8下的markdown、highlight、pagedown解决的相关信息,请在本站查询。

本文标签: