使用PIL在图像上编写简单文本很容易.
draw = ImageDraw.Draw(img)
draw.text((10, y), text2, font=font, fill=forecolor )
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试写希伯来语标点符号(称为"nikud"或ניקוד)时,字符不会重叠.(我猜这个问题也与阿拉伯语和其他类似语言有关.)
在支持环境中,这两个词占用相同的空间/宽度(以下示例取决于您的系统,因此图像):
סֶפֶרספר
但是当用PIL绘制文本时,我得到:
סֶפֶר
因为库可能不遵守字距调整(?)规则.
是否可以让字符和希伯来语标点符号占用相同的空间/宽度而无需手动编写字符定位?
image - nikud和字母间距http://tinypic.com/r/jglhc5/5
image url:http://tinypic.com/r/jglhc5/5
例如:
用户向下滚动视图A;
然后用户点击链接,用户可以查看B;
视图是更改,但用户的垂直位置保持不变,并且必须手动滚动到屏幕顶部.
这是一个有角度的虫子吗?
我写了一个小的解决方法,使用jquery滚动到顶部; 但是我找不到将它绑定到的正确事件.
看到评论后编辑:
如何以及何时将自己拉到顶峰?我正在使用jquery,但是$ viewContentLoaded事件太快了(该方法运行,但页面当时不滚动)
在pycharm中,如果我按F2,它会跳转到任何类型的"错误",例如样式,英语拼写,间距(显示为浅红色下划线)和真实错误.
有时我只想直接跳到真正的show-stopper(s),并直接修复它们(显示为RED下划线)
可能吗?
我没有找到在键映射中仅指定"错误错误"的方法.
给定一个回溯错误日志,我并不总是知道如何捕获一个特定的异常.
我的问题一般是,如何确定要编写哪个"except"子句以处理某个异常.
例1:
File "c:\programs\python\lib\httplib.py", line 683, in connect
raise socket.error, msg
error: (10065, 'No route to host')
Run Code Online (Sandbox Code Playgroud)
例2:
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position(...)
Run Code Online (Sandbox Code Playgroud)
抓住第二个例子是显而易见的:
try:
...
except UnicodeDecodeError:
...
Run Code Online (Sandbox Code Playgroud)
我如何抓住第一个错误?
6 - 7年前,我看到了一种通过仅运行解释器一次在紧密资源环境中运行python的方法,同时允许多个脚本同时使用它.
这个想法是机器人保存解释器启动开销和节省RAM.
是否存在类似的东西?
这个问题 Python:从同一个解释 器同时执行多个脚本不能解决并发问题.至少答案是关于顺序运行,但我需要同时:)
想法?
我的wxPython项目有一个框架,有多个嵌套的sizer.
其中一个sizer包含一个wxStaticImage,其中一个位图是从文件中读取的.
每次调整帧大小时,我都需要调整图像大小(增大/缩小),因此它适合它的sizer边界.
(我想)我知道如何调整图像大小.我不知道的是如何:
(现在,我不介意比例)
编辑:完整解决方案
我对wxStaticBitmapin.Size有所了解.它没有描述图像的大小(即图像分辨率),而是 - wxStaticBitmapin.Size给出了sizer的槽尺寸,换句话说:当前小部件的大小.
所以使用Mik的代码我现在如何适应插槽.
除了迈克的解决方案:在框架上使用onSize事件时,不要忘记添加event.skip().否则sizer将停止重新对齐.另外,只需使用图像的onSize.
这是完整的事件方法:
def bitmap1_onSize(self, e=None):
W, H = self.bitmap1.Size
if W > H:
NewW = W
NewH = W * H / W
else:
NewH = H
NewW = H * W / H
img = wx.Image(self.frame_file_picker.Path, wx.BITMAP_TYPE_ANY)
img = img.Scale(NewW,NewH)
self.bitmap1.SetBitmap(wx.BitmapFromImage(img))
e.Skip()
Run Code Online (Sandbox Code Playgroud) 我经常忘记在格式化字符串前加上“f”前缀。
一个错误的例子: text = "results is {result}"
它应该在哪里 text = f"results is {result}"
我经常犯这个错误;我的IDE没有报告它,并且程序运行没有异常。
我想也许扫描我的源代码中是否有带引号的字符串,检查 {,} 字符,并搜索它是否缺少前缀“f”文字;
但我想,使用解析器更好?或者也许有人已经这样做了?
编辑这是跨多个元素的类似(或重复)的 Angular.js ng-repeat
-
我有一个表,其行通过ng-repeat生成:
<tr ng-repeat="(key, value) in rows">
<td>{{a}}</td>
<td>{{b}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
出于各种原因,我真的更喜欢将它保存在<table>标签中,而不是几个内联块.
如何在每行下方添加另一行,例如伪代码
[ somehow-repeat ng-repeat="(key, value) in rows"]
<tr class="1">
<td>{{a}}</td>
<td>{{b}}</td>
</tr>
<tr class="1">
<td colspan="2">
</tr>
[ /somehow-repeat ]
Run Code Online (Sandbox Code Playgroud)
据我所知(值得检查)我无法将TR包装在另一个元素中.只是chekced :(表格没有显示我是否"somehow-repeat"元素是或
所以 - 有没有办法添加新行尽管在ng-repeat中?
我在http://jsfiddle.net/S2kc7/1/中有一个(非工作)示例
<radio ng-model="value" ng-value="foo">
<radio ng-model="value" ng-value="bar">
Run Code Online (Sandbox Code Playgroud)
如果用户不批准,我想恢复到以前的状态.
例如,如果在用户点击"bar"之前ng-model ="value"在"foo"上,然后用户选择取消,我想阻止该事件,并保持"value = foo",没有任何改变或观看.
我试过了:
$scope.$watch('value', function(){ newvalue = oldvalue })
$scope.clicked = function($event) { $event.preventDefault(); }
<radio ng-change="check_and_prevent()">
Run Code Online (Sandbox Code Playgroud)
这些方法都没有能够取消事件(在我的测试中).一些测试的遗骸在上面的jsfiddle中被注释掉了.
我可以阻止<radio>上的活动吗?
我可以阻止<select>上的事件吗?
编辑 @jose的答案适用于所提出的案例,但不适用于真实的网站;
在我的网站中,"价值"实际上是一个对象的属性; 但即使是在jsFiddle的无菌环境中也能解决这个问题:http: //jsfiddle.net/L5555/
但不是在我的网站上.
我不知道有什么区别,我无法透露我的网站.
不管怎么说,还是要谢谢你.