小编lan*_*ng2的帖子

抗锯齿PNG在Qt中调整大小?

在基于PyQt的GUI程序中,我在调整大小后将一些PNG文件绘制为QPixmap.所以这基本上是发生了什么:

bitmap = QPixmap( "foo.png" )
bitmap.scaleToHeight(38) # original is larger than this
scene.addItem(QGraphicsPixmapItem(bitmap)) # Add to graphics scene
Run Code Online (Sandbox Code Playgroud)

问题是:之后,位图相当丑陋.有没有办法以抗锯齿的方式做到这一点?

python user-interface qt

3
推荐指数
1
解决办法
1592
查看次数

对ARM9数据对齐的困惑

考虑以下C程序:

int main(void)
{
    char string[10] __attribute__ ((aligned(32)));
    int i;
    int *intp = (int*)(string + 1 );

    printf("string: 0x%x, intp: 0x%x\n", string, intp);

    for (i=0; i<10; i++)
    {
        string[i] = 10;
    }
    dump(string);

    printf("*intp: 0x%x\n", *intp);

    *intp = 0xEEEEEEEE;
    dump(string);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以我基本上强迫CPU在未对齐的地址访问32位数据(int).TBH我希望在我的ARM9主板上出现段错误.但相反,我得到了一些有趣/令人困惑的结果:

将intp设置为0xEEEEEEEE后,转储字符串显示:

 0xee, 0xee, 0xee, 0xee, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa    
Run Code Online (Sandbox Code Playgroud)

所以代码实际上改变了字符串中的第一个元素!为什么?

谢谢,

c arm alignment

3
推荐指数
1
解决办法
426
查看次数

python闭包+ oop

我试图用python闭包做一些有点奇怪的事(至少对我来说).说我有2个这样的课程:

#!/usr/bin/python
import types

def method_a(self):
    print "ma %d" % self.val

class A(object):
    def __init__(self):
        self.val = 5
        pass

    def foo(self, a):
        def closure(self):
            print "closure %d, %d" % (self.val, a)
        return closure

class B(object):
    def __init__(self):
        self.val = 10
        pass

    def foo(self):
        print "B::foo %d"  % self.val


a = A()
b = B()
b.undo = types.MethodType(a.foo(1), b)

b.undo()
Run Code Online (Sandbox Code Playgroud)

因此,对象a的方法返回一个由对象b使用的闭包,闭包函数将绑定到对象b,因为上面的代码将导致:

closure 10, 1
Run Code Online (Sandbox Code Playgroud)

我的问题是:无论如何都要允许closure()方法访问属性,对象的方法是什么?

谢谢,

python oop closures

3
推荐指数
1
解决办法
1026
查看次数

运行reverse-step时,目标子级不支持此命令错误

我正在玩gdb反向调试.所以我有一个简单的C程序,main()和foo()在main()中调用.

在gdb里面,我做了以下几点

b main
record
run
Run Code Online (Sandbox Code Playgroud)

然后我介入foo():

s
Run Code Online (Sandbox Code Playgroud)

然后我试着回去

reverse-step
Run Code Online (Sandbox Code Playgroud)

那是我在标题中收到错误消息的时候.

我的gdb版本是:GNU gdb(GDB)7.5.91.20130417-cvs-ubuntu

我做错了什么?

debugging gdb

3
推荐指数
1
解决办法
2858
查看次数

golang:Marshal [] os.FileInfo成JSON

基本上,我想要实现的是获取目录的内容,os.ReadDir()然后将结果编码为json.

直接做的事情json.Marshal()没有例外,但给了我一个空洞的结果.

所以我尝试了这个:

func (f *os.FileInfo) MarshalerJSON() ([]byte, error) {
    return f.Name(), nil
}
Run Code Online (Sandbox Code Playgroud)

然后Go告诉我这os.FileInfo()是一个接口,不能以这种方式扩展.

最好的方法是什么?

json go

3
推荐指数
1
解决办法
1634
查看次数

python wand:用draw.text()改变文本样式

我正在用draw.text()画布上画一些文字.但该功能似乎只需要3个参数x,y和body,所以没有办法指定什么字体,颜色等.可能我在这里缺少一些东西,因为这是非常基本的功能.我错过了什么?

python imagemagick wand

3
推荐指数
1
解决办法
2200
查看次数

MySQL数据库迁移:字符串长度的变化

我正在使用 SQLAlchemy + alembic 来管理我的数据库。我有一个 10 个字符长的字符串字段,后来发现它必须是 20 个字符。所以我更新了模型定义。

class Foo(db.Model):
    __tablename__ = 'foos'
    id = db.Column(db.Integer, primary_key=True)
    foo_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    name = db.Column(db.String(80))
Run Code Online (Sandbox Code Playgroud)

当我运行时alembic revision --autogenerate,没有检测到这一点。现在我确实阅读了文档并怀疑这可能不受支持。我如何优雅地管理数据库中的此类更改?

python mysql alembic

3
推荐指数
1
解决办法
1588
查看次数

golang:可变参数函数参数的动态组合

我想调用一个可变参数函数并动态组合参数。以fmt.Printf()为例。如果我有struct

type Foo struct {
   a int
   b string
}
Run Code Online (Sandbox Code Playgroud)

我想打电话fmt.Printf(foo.a, foo.b).但是如果我有另一个Bar struct有 3 个字段的,我想打电话给fmt.Printf(bar.a, bar.b, bar.c).

所以我想写一个这样的函数:

func MyPrint(obj interface{})
Run Code Online (Sandbox Code Playgroud)

并且能够使用MyPrint(foo)or调用它,MyPrint(bar)代码将自动找出foo有 2 个字段并执行:

...
fmt.Printf(foo.a, foo.b)
Run Code Online (Sandbox Code Playgroud)

bar 有 3 个字段并且做

...
fmt.Printf(bar.a, bar.b, bar.c)
Run Code Online (Sandbox Code Playgroud)

在 Python 中,您可以执行类似call(*list). 我如何在 Go 中实现这一目标?

go

3
推荐指数
1
解决办法
749
查看次数

vim:检查修改设置值的位置

我应该把它写在某处,因为它不容易记住而且不经常使用.但无论如何,

我有一个像'expandtab'的设置.我想改成'noexpandtab'.但我无法弄清楚它在哪个rc文件中设置了最后一个效果.有一个技巧可以知道最后设置的设置.有什么诀窍?

vim

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

iter()内置的重点是什么?

有了iter(),我可以这样做:

>>> listWalker = iter ( [23, 47, 'hike'] )
>>> for x in listWalker: print x,
Run Code Online (Sandbox Code Playgroud)

但无论如何我还是可以这样做:

>>> listWalker = [23, 47, 'hike']
>>> for x in listWalker: print x,
Run Code Online (Sandbox Code Playgroud)

它增加了什么价值?

python

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

标签 统计

python ×5

go ×2

alembic ×1

alignment ×1

arm ×1

c ×1

closures ×1

debugging ×1

gdb ×1

imagemagick ×1

json ×1

mysql ×1

oop ×1

qt ×1

user-interface ×1

vim ×1

wand ×1