小编Don*_*kby的帖子

如何从鼠标坐标获取基数鼠标方向

是否可以根据鼠标的最后位置和当前位置获取鼠标方向(左,右,上,下)?我已经编写了代码来计算两个向量之间的角度,但我不确定它是否正确.

有人可以指出我正确的方向吗?

    public enum Direction
    {
        Left = 0,
        Right = 1,
        Down = 2,
        Up = 3
    }

    private int lastX;
    private int lastY;
    private Direction direction;

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        lastX = e.X;
        lastY = e.Y;
    }
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        double angle = GetAngleBetweenVectors(lastX, lastY, e.X, e.Y);
        System.Diagnostics.Debug.WriteLine(angle.ToString());
        //The angle returns a range of values from -value 0 +value
        //How to get the direction from the angle?
        //if (angle > ??) …
Run Code Online (Sandbox Code Playgroud)

c# mouse position direction coordinates

6
推荐指数
2
解决办法
3968
查看次数

你能用C++保护嵌套类吗?

我有一个类,它只是某个类层次结构中的类所需要的.我想知道是否可以将类嵌套在最高级别的受保护部分中,并让所有其他类自动继承它?

c++ nested class protected

5
推荐指数
1
解决办法
1956
查看次数

你如何阻止PHP类执行?

我正在寻找类似breakfor循环的东西.

这里是一些示例代码(使用Symfony的石灰),stop()不会让类继续I_DONT_WANT_THIS_TO_RUN()执行,也不会执行.

$browser->isStatusCode(200)
  ->isRequestParameter('module', 'home')
  ->isRequestParameter('action', 'index')
  ->click('Register')
  ->stop()
  ->I_DONT_WANT_THIS_TO_RUN();
$browser->thenThisRunsOkay();
Run Code Online (Sandbox Code Playgroud)

$this->__deconstruct();从内部打电话stop()似乎没有办法.是否有一个我可以调用的函数可以stop()实现这一点?

php exception class

5
推荐指数
2
解决办法
4994
查看次数

如何在OpenERP上创建动态视图

我需要一个帮助来创建一个动态视图.让我解释一下:我有Form1和Form2的观点.Form1包含expression字段和extract按钮.Form2包含Form1中表达式的提取元素.例如,当您输入(a+b)*c-d*0,5Form1的表达式字段时,Form2应该提取并显示以下内容:

( - open brace
a - variable
+ - addition
b - variable
) - close brace
* - multiplication
c - variable
- - subtraction
d - variable
* - multiplication
0,5 - constant number
Run Code Online (Sandbox Code Playgroud)

现在,这是我的班级:

class wz_formula(osv.osv_memory):
    """
        Formula Wizard
    """
    _name = "wz.formula"
    _inherit = "ir.wizard.screen"
    _description = "Formula Wizard"

    _columns = {
            'name': fields.char('Formula name', required=True, size=64)
            , 'expression': fields.char('expression', required=True, size=64)
            , 'state': fields.selection([('init','init'),('done','done')], 'state', readonly=True)
    }

    _defaults …
Run Code Online (Sandbox Code Playgroud)

python openerp

5
推荐指数
2
解决办法
1万
查看次数

无法在OpenERP 6中安装新模块

我开发了一个模块'newpatient',我无法通过压缩文件夹安装.我读过OpenERP开发.本书以及关于创建新模块的博客.从此博客复制粘贴作业后安装时,模块"notebook"已安装并正常工作.我应用相同的步骤(甚至现在检查代码n次)到我的模块但仍然无法安装它.即使我在ERP客户端"模块安装"上获得了msg,该模块也不在"模块"列表中.什么可能是错的?

这是代码.该newpatient.py文件中:

from osv import fields, osv
import time

class newpatient(osv.osv):
_name = "Newpatient"
_description = "Creating new patient"
_columns = {'name':fields.char('Name',size=30,required=True),
            'address':fields.char('Address',size=50,required=True),
            }
newpatient()
Run Code Online (Sandbox Code Playgroud)

__init__.py文件中:

import newpatient
Run Code Online (Sandbox Code Playgroud)

__openerp__.py文件中:

{
"name" : "Newpatient",
"version" : "1.0",
"author" : "K Y",
"category" : "Generic Modules/Others",
"depends" : ["base"],
"init_xml" : [newpatient_view.xml],
"demo_xml" : [],
"update_xml" : [],
"installable": True,
"active": False
}
Run Code Online (Sandbox Code Playgroud)

真的卡住了.会感激一些帮助.

install module new-operator openerp

5
推荐指数
1
解决办法
1348
查看次数

为什么在文件范围内用“my”声明 Perl 变量?

我正在学习 Perl 并试图了解变量范围。我知道这my $name = 'Bob';在 sub 中声明一个局部变量,但是为什么要my在全局范围内使用关键字?这只是一个好习惯,所以您可以安全地将代码移动到子程序中吗?

我看到很多这样做的示例脚本,我想知道为什么。即使使用use strict,当我删除my. 我试过比较有和没有它的行为,我看不出有什么区别。

这是执行此操作的一个示例

#!/usr/bin/perl
use strict;
use warnings;

use DBI;

my $dbfile = "sample.db";

my $dsn      = "dbi:SQLite:dbname=$dbfile";
my $user     = "";
my $password = "";
my $dbh = DBI->connect($dsn, $user, $password, {
   PrintError       => 0,
   RaiseError       => 1,
   AutoCommit       => 1,
   FetchHashKeyName => 'NAME_lc',
});

# ...

$dbh->disconnect;
Run Code Online (Sandbox Code Playgroud)

更新

当我测试这种行为时,我似乎很不走运。这是我测试的脚本:

use strict;

my $a = 5;
$b = …
Run Code Online (Sandbox Code Playgroud)

perl scope

5
推荐指数
1
解决办法
1528
查看次数

Python单元测试中多行字符串的比较

当我在Python单元测试中比较两个Unicode字符串时,它会提供一个很好的失败消息,突出显示哪些行和字符不同.但是,比较两个8位字符串只显示两个没有突出显示的字符串.

如何突出显示Unicode和8位字符串?

这是一个示例单元测试,显示两个比较:

import unittest

class TestAssertEqual(unittest.TestCase):
    def testString(self):
        a = 'xax\nzzz'
        b = 'xbx\nzzz'
        self.assertEqual(a, b)

    def testUnicode(self):
        a = u'xax\nzzz'
        b = u'xbx\nzzz'
        self.assertEqual(a, b)

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

该测试的结果显示了差异:

FF
======================================================================
FAIL: testString (__main__.TestAssertEqual)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/mnt/data/don/workspace/scratch/scratch.py", line 7, in testString
    self.assertEqual(a, b)
AssertionError: 'xax\nzzz' != 'xbx\nzzz'

======================================================================
FAIL: testUnicode (__main__.TestAssertEqual)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/mnt/data/don/workspace/scratch/scratch.py", line 12, in testUnicode
    self.assertEqual(a, b)
AssertionError: u'xax\nzzz' != u'xbx\nzzz'
- xax …
Run Code Online (Sandbox Code Playgroud)

python unicode unit-testing

5
推荐指数
1
解决办法
6259
查看次数

断言在特定实例上调用了 PropertyMock

我已成功使用 模拟了一个属性PropertyMock,但我不知道如何检查该类的哪个实例已调用该属性。我如何断言该属性是在一个对象上调用的,而不是在另一个对象上调用的?

这是一个例子,我想断言它foo1.is_big被调用了,但foo2.is_big没有被调用:

from mock import PropertyMock, patch


class Foo(object):
    def __init__(self, size):
        self.size = size

    @property
    def is_big(self):
        return self.size > 5

f = Foo(3)
g = Foo(10)
assert not f.is_big
assert g.is_big

with patch('__main__.Foo.is_big', new_callable=PropertyMock) as mock_is_big:
    mock_is_big.return_value = True
    foo1 = Foo(4)
    foo2 = Foo(9)

    should_pass = False
    if should_pass:
        is_big = foo1.is_big
    else:
        is_big = foo2.is_big
    assert is_big
    # How can I make this pass when should_pass is True, and …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking

5
推荐指数
1
解决办法
1925
查看次数

为 Seaborn 二元 KDE 图添加标签

我喜欢多二元 KDE 图的 Seaborn 示例,但我希望在该示例中使用标准 matplotlib 图例而不是自定义标签。

这是我尝试使用图例的示例:

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

cmaps = ['Reds', 'Blues', 'Greens', 'Greys']

np.random.seed(0)
for i, cmap in enumerate(cmaps):
    offset = 3 * i
    x = np.random.normal(offset, size=100)
    y = np.random.normal(offset, size=100)
    label = 'Offset {}'.format(offset)
    sns.kdeplot(x, y, cmap=cmaps[i]+'_d', label=label)
plt.title('Normal distributions with offsets')
plt.legend(loc='upper left')
plt.show()
Run Code Online (Sandbox Code Playgroud)

没有传说的情节

标签参数 tokdeplot()似乎适用于单变量 KDE 图,但不适用于双变量图。如何添加图例?

python matplotlib seaborn

5
推荐指数
1
解决办法
6506
查看次数

新的 Snake_case 功能在 PySide6 中如何工作?

我正在从 PySide2 版本 5 升级到 PySide6,发行说明说它支持蛇形方法名称以及用属性替换 getter 和 setter 方法。这听起来像是一个很大的改进,但我不知道如何启用它。发行说明中有一个代码示例,但它无法运行。当我尝试将其扩展为可运行的示例时,新版本不起作用。

这是仍然适用于 PySide6 的旧样式:

import sys
from PySide6.QtWidgets import (QTableWidget, QPushButton, QVBoxLayout,
                               QApplication, QWidget)


class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        table = QTableWidget()
        table.setColumnCount(2)

        button = QPushButton("Add")
        button.setEnabled(False)

        layout = QVBoxLayout(self)
        layout.addWidget(table)
        layout.addWidget(button)


if __name__ == "__main__":
    app = QApplication([])

    widget = MyWidget()
    widget.resize(800, 600)
    widget.show()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

这是不起作用的新版本:

from __feature__ import snake_case, true_property

import sys
from PySide6.QtWidgets import (QTableWidget, QPushButton, QVBoxLayout,
                               QApplication, QWidget)


class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        table = …
Run Code Online (Sandbox Code Playgroud)

python pyside6

5
推荐指数
1
解决办法
2084
查看次数