小编f.r*_*ues的帖子

Matplotlib将图像文件旋转X度

如何旋转图像文件并在matplotlib中绘制?

我知道我可以使用PIL打开它并旋转它,但这对于这个简单的功能似乎太过分了,我可能没找到.

我在这里发现了这段代码,但似乎不起作用:

from matplotlib import pyplot, image, transforms

img = image.imread('filename.png')

pyplot.ion()
fig = pyplot.figure()
ax = fig.add_subplot(111)

for degree in range(360):
    pyplot.clf()
    tr = transforms.Affine2D().rotate_deg(degree)

    ax.imshow(img, transform=tr)
    fig.canvas.draw()
Run Code Online (Sandbox Code Playgroud)

python image matplotlib

4
推荐指数
3
解决办法
2万
查看次数

递归扩展QTreeView中项目的所有子项

我有一个QTreeView,我想扩展最近扩展项目的所有子项目.

我尝试使用.expandAll(),但它也扩展了所有其他项目.

我很难获得最后扩展的项目的ModelIndex,如果我有它,我可以递归扩展它的孩子.

我怎么做?

qt pyqt qtreeview pyside

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

Qt - 使用 lambda 将插槽与参数连接

我有几个小部件将连接到需要额外参数的单个函数。

我发现我可以使用 lambda 函数来向函数传递一些参数。

问题是参数在循环中被替换,而 lambda 函数只传递最后一组。

这是我得到的:

self.widgets是一个带有按钮组键的字典,为了简短起见,假设它有 2 个按钮 [QToolButton],链接到它们的键:“播放”和“停止”。

def connections(self):
    for group in self.widgets:
        self.widgets[group].clicked.connect(lambda: self.openMenu(group))

    def openMenu(self,group):
        print group
Run Code Online (Sandbox Code Playgroud)

但是无论我点击哪个按钮,它都会打印同一个组,即在 for 循环中迭代的最后一个组。

有任何解决这个问题的方法吗?

python lambda qt pyqt signals-slots

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

生成MIDI文件并播放它而不将其保存到磁盘

我发现这个模块可以创建midi文件.

我可以轻松地使用pygame mixer.music播放输出文件,但如果我尝试播放而不必保存到文件(播放对象)它不起作用,我得到

pygame.error:无法读取RWops

.

我尝试使用StringIO但没有成功.我上面得到了同样的错误.

有没有人知道任何可以播放MIDI对象的模块,也可以创建它们?

python midi pygame object

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

将列表与不同数量的项目进行比较

我怎样才能做到这一点?

A = ['fish', 'banana', 'old pajamas', 'Mutton', 'Beef', 'Trout']
B = ['fish', 'banana', 'old pajamas']

B in A = True
A in B = False
Run Code Online (Sandbox Code Playgroud)

我尝试了'in'比较器,但它在两种情况下都返回False,因为它检查List B是否在List A中,而不是A中的B项.

除了使用像这样的非常长的if语句之外,还有一种简单的方法吗?

if B[0] == A[0] and B[1] == A[1] and B[2] == A[2]: 
    return True
else: return False
Run Code Online (Sandbox Code Playgroud)

python comparison compare contains list

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

PyQt/Pyside - 动态创建和连接 - 捕获 lambda 中的函数和参数

我正在尝试重新创建 Windows 记事本。

\n\n

我目前正在搞乱QMenuBar

\n\n

我制作了一本字典,其中包含以下模式的所有菜单和操作:

\n\n
menus = {'File':[['New', 'Ctrl+n'],\n                 ['Open', 'Ctrl+o'],\n                 ['Save', 'Ctrl+s'],\n                 ['Save as...', None],\n                 'Separator', \n                 # and so on\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我迭代该字典,并成功创建菜单和操作并将它们存储在第二个字典中。

\n\n

现在我正在尝试连接每个action[new, open, save, \xe2\x80\xa6] to a instance method of the same name.

\n\n

我这样做是这样的:

\n\n
for action in menus[m]:\n    action = menu.addAction(action[0])\n\n    if action[1]:\n        action.setShortcut(QKeySequence(action[1]))\n\n    if isinstance(action, QAction):\n        fname = action[0].lower() \n        # and some other string manipulations\n        func = getattr(self,fname)\n        action.triggered.connect(lambda arg=action: func(arg))\n
Run Code Online (Sandbox Code Playgroud)\n\n

它连接成功,但如果我尝试使用任何操作,它不会执行任何操作。

\n\n

我以前曾使用 lambda 函数连接操作,但这是我第一次使用 …

python lambda pyqt pyside getattr

0
推荐指数
1
解决办法
1538
查看次数