wx.SpinCtrl
仅限于整数旋转,而不是浮动.因此,我正在构建一个wx.TextCtrl
+ wx.SpinButton
combo类,这使我能够跨越浮点数.我能够以编程方式对它们进行大小和布局,以使组合看起来与普通组件完全相同wx.SpinCtrl
.
我从这里继承了这个组合,wx.TextCtrl
因为我希望它的父面板能够捕获wx.EVT_TEXT
事件.如果你能改进我的这个论点,我将不胜感激.
在wx.EVT_SPIN_UP
与wx.EVT_SPIN_DOWN
从事件wx.SpinButton
都是内实现和父框架并不关心这些事件.
现在,我刚碰到一堵砖墙.我的组合类与sizer不兼容.在.Add()
将组合类放到a之后wx.GridBagSizer
,只有在wx.TextCtrl
它内部布局wx.GridBagSizer
.该wx.SpinButton
由自己留在了自己.但是wx.EVT_SPIN*
绑定工作得很好.
我的问题是布局.如果我想wx.GridBagSizer
将它视为一个小部件,我该如何编写该类?
这是我的组合类代码:
class SpinnerSuper(wx.TextCtrl):
def __init__(self, parent, max):
wx.TextCtrl.__init__(self, parent=parent, size=(48, -1))
spin = wx.SpinButton(parent=parent, style=wx.SP_VERTICAL, size=(-1, 21))
self.OnInit()
self.layout(spin)
self.internalBindings(spin)
self.SizerFlag = wx.ALIGN_CENTER
self.min = 0
self.max = max
def OnInit(self):
self.SetValue(u"0.000")
def layout(self, spin):
pos = self.GetPosition()
size = self.GetSize()
RightEdge = pos[0] …
Run Code Online (Sandbox Code Playgroud) 我需要在 64 位 CentOS 中运行 32 位 Python。
我有一个 PCI-GPIB 接口卡。它的驱动程序来自National Instruments。它在驱动程序页面中说:
NI-488.2 2.9 版支持 64 位内核。该驱动程序当前只能在 32 位应用程序中使用。
我使用PyVISA包装器来使用驱动程序,如下所示:
import visa
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
OSError: /usr/local/vxipnp/linux/bin/libvisa.so.7: wrong ELF class: ELFCLASS32
Run Code Online (Sandbox Code Playgroud)
National Instruments 说他们的驱动程序支持 64 位内核。好。
但它只能在32 位应用程序中使用。不好。我的 Python 安装(我自己编译)是 64 位的。
我正在寻找有关如何使用python读取GnuCash文件的信息.我已经读过这个python-gnucash
提供Python绑定到GnuCash库的内容,但是目前它需要做很多工作(例如依赖项,头文件等).这些说明是针对Linux环境而定制的,而且是一个相当古老的GnuCash版本(2.0.x).我正在运行GnuCash 2.2.9.虽然我可以操作Linux命令行,但我在Windows XP上运行GnuCash.
我的主要目标是阅读(没有计划编写)我的GnuCash文件,以便我可以使用matplotlib
和创建自己的可视化动态报告wxpython
.我还没有心情去学习Scheme.
我希望有人能指出我这方面的良好开端.据我所知,GnuCash和Python,我想有人可能知道以下类型的解决方案:
除了提到的那些,你们可能会有更好的建议.
我想将日历分成两周的间隔,从2008-May-5
任何起点开始.
所以我从几个日期对象开始:
import datetime as DT
raw = ("2010-08-01",
"2010-06-25",
"2010-07-01",
"2010-07-08")
transactions = [(DT.datetime.strptime(datestring, "%Y-%m-%d").date(),
"Some data here") for datestring in raw]
transactions.sort()
Run Code Online (Sandbox Code Playgroud)
通过手动分析日期,我完全能够确定哪些日期属于同一个两周的时间间隔.我希望得到与此类似的分组:
# Fortnight interval 1
(datetime.date(2010, 6, 25), 'Some data here')
(datetime.date(2010, 7, 1), 'Some data here')
(datetime.date(2010, 7, 8), 'Some data here')
# Fortnight interval 2
(datetime.date(2010, 8, 1), 'Some data here')
Run Code Online (Sandbox Code Playgroud) 如何在facecolor
条形图中添加渐变?我想知道如何使用简单的单色渐变来复杂多色渐变.这是一些示例代码:
import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(1,5))
plt.axis([0,1,-50,200])
plt.xticks([])
plt.yticks([-40,180])
plt.bar(left=0, width=1, bottom=-40, height=220, color='r')
plt.subplots_adjust(left=0.4, right=0.8)
plt.savefig("test.png")
Run Code Online (Sandbox Code Playgroud) 我有以下功能:
def foo(**kwargs):
if not kwargs:
# No keyword arguments? It's all right. Set defaults here...
elif ('start_index' or 'end_index') in kwargs:
# Do something here...
else:
# Catch unexpected keyword arguments
raise TypeError("%r are invalid keyword arguments" % (kwargs.keys())
Run Code Online (Sandbox Code Playgroud)
题:
我想确保唯一有效的关键字参数是start_index
或end_index
.其他任何东西都会引发错误,即使与有效的混合也是如此.什么是食谱配方,以确保只有start_index
或被end_index
接受?是的,我正在寻找食谱配方,但我不确定如何搜索它.我不确定使用if-elif-else
结构是否也是正确的方法.
例如,我有以下JavaScript代码(已加载Dojo 1.6):
dojo.require("dojo.io.script")
// PART I
var jsonpArgs = {
url: "http://myapp.appspot.com/query",
content: {
id: "1234",
name: "Juan",
start_date: "2000-01-01",
callback: "recover"
}
};
// PART II
dojo.io.script.get(jsonpArgs).then(function(data) {
console.log(data);
});
// PART III
function recover(data) {
console.log(data);
}
Run Code Online (Sandbox Code Playgroud)
我知道我的服务器将收到查询,就像我在地址栏中键入以下内容一样:
http://myapp.appspot.com/query?id=1234&name=Juan&start_date=2000-01-01&callback=recover
Run Code Online (Sandbox Code Playgroud)
如果我使用浏览器地址栏直接查询我的服务器,我会收到MIME类型application/json
和浏览器中呈现的明文,如下所示:
recover(
{
id: 1234,
name: Juan,
data: [
["2000-01-01", 1234],
["2000-01-02", 5678]
]
}
);
Run Code Online (Sandbox Code Playgroud)
现在,回顾一下JavaScript的第二部分,我将执行JSONP请求dojo.io.script.get(jsonpArgs)
.这会返回一个Deferred
对象,我可以通过链接来利用.then
它.请注意,我将.then
事件的处理程序定义为输出捕获data
到控制台的事件.
但是,我在控制台中得到的只是一个Event
.我试图搜索它的数据树,但我找不到我预期的数据.
我理解这StringIO
就像一个文件对象,鸭子键入你会得到什么open('somefile.txt')
.
现在我想用StringIO
用with
语句:
with StringIO('some string') as fh: # fh as in "file handle"
data = [stuff from stuff in fh.read()]
Run Code Online (Sandbox Code Playgroud)
但Python抱怨该类型StringIO
没有__exit__
方法.子类化后StringIO
:
class MyStringIO(StringIO):
def __exit__(self):
self.close()
Run Code Online (Sandbox Code Playgroud)
我现在得到一个关于没有__enter__
方法的例外.我该如何定义__enter__
方法?Python对可以与with
语句一起使用的类有什么期望?
例如,我有以下数组:
x = [0, 1, 2, 3, 4.5, 5]
y = [2, 8, 3, 7, 8, 1]
Run Code Online (Sandbox Code Playgroud)
我希望能够执行以下操作x
:
>>> what_is_y_when_x_is(2)
(2, 3)
>>> what_is_y_when_x_is(3.1) # Perhaps set rules to round to nearest (or up or down)
(3, 7)
Run Code Online (Sandbox Code Playgroud)
另一方面,当给出y
:
>>> what_is_x_when_y_is(2)
(0, 2)
>>> what_is_x_when_y_is(max(y))
([1, 4.5], 8)
Run Code Online (Sandbox Code Playgroud)
我可以绘制与使用封闭分析函数的y
对比结果x
,只需调用foo_function(x)
. 但是,我正在运行数值模拟,其数据图没有闭合解析解。
我之前解决过类似的问题,大致是这样处理的:
what_is_y_when_x_is(some_x)
x
中搜索some_x
.i
.y[i]
。有一个更好的方法吗?也许是内置numpy …
我可以将文本从Vim复制到其他Mac应用程序"*y
.但是当我尝试从TextEdit粘贴到Vim时,我无法粘贴文本"*p
.我错过了一些设置吗?