小编Bru*_*elb的帖子

如何在PyQt4中为QTreeWidget实现itemChecked和itemUnchecked信号?

QTreeWidget上的信号itemChecked和itemUncheсked在哪里?

Qt Signals: (quote from PyQt4 QTreeWidget documentation page)

void currentItemChanged (QTreeWidgetItem *,QTreeWidgetItem *)
void itemActivated (QTreeWidgetItem *,int)
void itemChanged (QTreeWidgetItem *,int)
void itemClicked (QTreeWidgetItem *,int)
void itemCollapsed (QTreeWidgetItem *)
void itemDoubleClicked (QTreeWidgetItem *,int)
void itemEntered (QTreeWidgetItem *,int)
void itemExpanded (QTreeWidgetItem *)
void itemPressed (QTreeWidgetItem *,int)
void itemSelectionChanged ()
Run Code Online (Sandbox Code Playgroud)

目前我解决了这个问题:

self.treeWidget.itemClicked.connect (self.handle)

def handle (item, column): 
    print 'emitted!', item.text(column)
    if item.checkState(column) == QtCore.Qt.Checked:
        # there are a lot of my functions inside which work with item data
        self.handleChecked(item, column) …
Run Code Online (Sandbox Code Playgroud)

qt pyqt signals-slots qtreewidget pyqt4

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

带有共同子键的新词典

如果我有一本字典,如下:

{
    'key1':
        {
            'foo': 1233,
            'bar': 1234,
            'baz': 122
        },
    'key2':
        {
            'foo': 113,
            'bar': 333
        }
}
Run Code Online (Sandbox Code Playgroud)

如何返回具有以下结果的新字典

{
    'key1':
        {
            'foo': 1233,
            'bar': 1234
        },
    'key2':
        {
            'foo': 113,
            'bar': 333
        }
}
Run Code Online (Sandbox Code Playgroud)

我想要'key1'和'key2'的子词典(这是正确的术语?)具有相同的键

python dictionary

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

如何在PyQt中调整小部件大小时禁用多次自动重绘?

我有一个带有小部件的PyQt4程序,其内容重绘速度非常慢(因为我的任务,所以没问题).当我试图调整这些小部件的大小时,程序试图在鼠标未释放的情况下重绘很多次.这是很多冻结.

我想禁用自动重绘并配置PyQt仅在鼠标释放时重绘所有小部件(这意味着重绘每次调整大小只发生一次).

怎么做?

EDIT1.我会很简单地看到它,就像这样:拖动线,拖动时,所有小部件都会站立.当您释放它时,小部件重绘.但是我真的不确定它在PyQt4中是否可行.

performance qt pyqt pyqt4 qpainter

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

将csv转换为netcdf

我试图通过Python将.csv文件转换为netCDF4,但我无法弄清楚如何将.csv表格格式的信息存储到netCDF中.我主要担心的是我们如何将列中的变量声明为可行的netCDF4格式?我发现的一切通常都是从netCDF4中提取信息到.csv或ASCII.我提供了样本数据,示例代码和我的错误,用于声明适当的数组.任何帮助将非常感激.

样本表如下:

Station Name    Country  Code   Lat Lon mn.yr   temp1   temp2   temp3   hpa 
Somewhere   US  12340   35.52   23.358  1.19    -8.3    -13.1   -5  69.5
Somewhere   US  12340           2.1971  -10.7   -13.9   -7.9    27.9
Somewhere   US  12340           3.1971  -8.4    -13 -4.3    90.8
Run Code Online (Sandbox Code Playgroud)

我的示例代码是:

#!/ usr/bin/env python

import scipy
import numpy
import netCDF4
import csv

from numpy import arange, dtype 
Run Code Online (Sandbox Code Playgroud)

#Declare空数组

v1 = []
v2 = []
v3 = []
v4 = []
Run Code Online (Sandbox Code Playgroud)

#打开csv文件并为每个标题声明数组的变量

f = open('station_data.csv', 'r').readlines()

for line in f[1:]:
    fields = …
Run Code Online (Sandbox Code Playgroud)

python csv netcdf

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

如何在django项目中使用jinja2渲染markdown内容?

我正在研究一个django项目,其模型如下:

class Article(models.Model):
    ...
    # which is submitted by users through a markdown editor.
    content = models.TextField(_('content'), blank=True)
    ...
Run Code Online (Sandbox Code Playgroud)

因此,我使用Jinja2渲染模板中的内容,我得到的只是没有任何样式的原始markdown内容.

python markdown jinja2

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

如何在scrapy中访问crawlspider中的命令行参数?

我想在scrapy crawl ...命令行中传递一个参数,以便在扩展的CrawlSpider中的规则定义中使用,如下所示

name = 'example.com'
allowed_domains = ['example.com']
start_urls = ['http://www.example.com']

rules = (
    # Extract links matching 'category.php' (but not matching 'subsection.php')
    # and follow links from them (since no callback means follow=True by default).
    Rule(SgmlLinkExtractor(allow=('category\.php', ), deny=('subsection\.php', ))),

    # Extract links matching 'item.php' and parse them with the spider's method parse_item
    Rule(SgmlLinkExtractor(allow=('item\.php', )), callback='parse_item'),
)
Run Code Online (Sandbox Code Playgroud)

我希望在命令行参数中指定SgmlLinkExtractor中的allow属性.我用Google搜索并发现我可以在spider __init__方法中获取参数值,但是如何在命令行中获取参数以在Rule定义中使用?

python scrapy

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

在haml的末尾斜线 - 我应该清理它吗?

我想知道为什么在我的项目的源代码中我有时会看到/一行(Haml).

%meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"}/
Run Code Online (Sandbox Code Playgroud)

也许这是由于一些HTML到Haml的转换,但为什么呢?

我找不到任何关于那个的文档.只是想知道我是否应该清理它.

ruby haml

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

pip install matplotlib错误,错误:/usr/local/man/man1/nosetests.1:权限被拒绝

我尝试使用自制软件安装matplotlib时遇到以下错误:

...[tons of output, then:]

running install_data

copying nosetests.1 -> /usr/local/man/man1

error: /usr/local/man/man1/nosetests.1: Permission denied

----------------------------------------
Cleaning up...
Command /usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools, tokenize;__file__='/private/var/folders/ys/l1bnz3cx34z3h4mrkny947v40000gr/T/pip_build_schultzm/nose/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/ys/l1bnz3cx34z3h4mrkny947v40000gr/T/pip-xWlPBu-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/var/folders/ys/l1bnz3cx34z3h4mrkny947v40000gr/T/pip_build_schultzm/nose
Storing debug log for failure in /Users/schultzm/.pip/pip.log
Run Code Online (Sandbox Code Playgroud)

我一直在寻找答案,找不到答案.但是,我通过以下方式解决了问题(所以在这里发布给其他人)

sudo chmod 777 /usr/local/man/man1/
Run Code Online (Sandbox Code Playgroud)

然后重新运行安装(即,pip install matplotlib),它运行正常.

python homebrew pip matplotlib python-2.7

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

如何防止Matplotlib剪掉我的轴标签?

我正在准备一些科学论文的图表,这些图片需要宽而短,才能符合页面限制.但是,当我将它们保存为pdf时,缺少x轴标签,因为(我认为)它们位于边界框之外.

将以下内容放入iPython笔记本中可以重现该问题.

%pylab inline
pylab.rcParams['figure.figsize'] = (8.0, 2.0)
plot([1,5,2,4,6,2,1])
xlabel("$x$")
ylabel("$y$")
savefig("test.pdf")
Run Code Online (Sandbox Code Playgroud)

生成的pdf文件如下所示: 在此输入图像描述

如何更改pdf文件的边界框?理想情况下,我想要一个"做得恰到好处"的解决方案,即自动调整大小,使一切都整齐,包括摆脱左右不必要的空间 - 但我很匆忙,所以我会以任何方式改变边界框,我会猜测数字,直到它看起来正确,如果我必须.

python axes matplotlib axis-labels

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

使用*args进行元组高级切片

根据使用元组创建切片,您可以方便地执行:

>>> a = range(20)
>>> b = (5, 12)
>>> a[slice(*b)]
[5, 6, 7, 8, 9, 10, 11]
Run Code Online (Sandbox Code Playgroud)

但我需要的是先进的:

a[5:]
a[:12]
a[:]
a[-1]
a[-2:]
a[:-2]
a[::-1]
Run Code Online (Sandbox Code Playgroud)

怎么用元组和*args

b = (5,:)
>>  File "<ipython-input-26-c4eae928199d>", line 1
>>    b = (5,:)
>>           ^
>>SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python slice

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