最近很多小伙伴都在问MonoMac平台鼠标右键展开列表:RightMouseDown和magicmouse右键这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展angularjs–测
最近很多小伙伴都在问MonoMac平台鼠标右键展开列表:RightMouseDown和magic mouse 右键这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展angularjs – 测试角度mousedown,mousemove,mouseup、C# •MouseDown •MouseDown •MouseUp 的先后顺序、delphi – 使用onmousedown,onmouseup和click事件时无法捕获所有点击、django1.8下的markdown、highlight、pagedown解决等相关知识,下面开始了哦!
本文目录一览:- MonoMac平台鼠标右键展开列表:RightMouseDown(magic mouse 右键)
- angularjs – 测试角度mousedown,mousemove,mouseup
- C# •MouseDown •MouseDown •MouseUp 的先后顺序
- delphi – 使用onmousedown,onmouseup和click事件时无法捕获所有点击
- django1.8下的markdown、highlight、pagedown解决
MonoMac平台鼠标右键展开列表:RightMouseDown(magic mouse 右键)
//鼠标右键点击事件
public overridevoid RightMouseDown(NSEventtheEvent)
{
base.();
NSMenutheMenu=new ("aTitle" InsertItemBeep,SelectorBeepClickstringEmpty 0HonkHonkClick1PopUpContextMenuFilesTableView;//FilesTableView上显示
}
//Selector
[Export)]
BeepClick()
ConsoleWriteLine csdnHonkClick}
angularjs – 测试角度mousedown,mousemove,mouseup
它们大致提供了如何制作拖动物的示例.
我的问题是你如何测试他们的例子/实施:
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 的先后顺序
鼠标按下事件发生的顺序
-
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事件时无法捕获所有点击
不幸的是,如果我快速点击我的面板,其他每一次点击都会“丢失”,但我无法弄清楚原因.
即便是最简单的例子也没有在这方面失败.我创建了一个新的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解决
写作说明:
在看完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平台鼠标右键展开列表:RightMouseDown和magic mouse 右键的分享已经告一段落,感谢您的关注,如果您想了解更多关于angularjs – 测试角度mousedown,mousemove,mouseup、C# •MouseDown •MouseDown •MouseUp 的先后顺序、delphi – 使用onmousedown,onmouseup和click事件时无法捕获所有点击、django1.8下的markdown、highlight、pagedown解决的相关信息,请在本站查询。
本文标签: