小编tzo*_*zot的帖子

为什么单击子窗口并不总是将应用程序带到前台?

当应用程序位于其他应用程序后面并且我单击我的应用程序的任务栏图标时,即使打开了app-modal,WS_POPUP对话框,我也希望整个应用程序位于z-order的顶部.

但是,有些时候,对于我的一些(和其他人)对话框,只有对话框出现在前面; 应用程序的其余部分留在后面.

我看过Spy ++,对于那些工作正常的,我可以看到WM_WINDOWPOSCHANGING被发送到对话框的父级.对于留下应用程序其余部分的那些,WM_WINDOWPOSCHANGING不会被发送到对话框的父级.

我有一个例子,其中一个对话框通常带有整个应用程序,而另一个没有.工作对话框和非工作对话框都具有相同的窗口样式,子样式,父级,所有者,个体发生.

简而言之,两者都是使用DialogBoxParam()创建的WS_POPUPWINDOW窗口,它们传入了与第三个参数相同的HWND.

有没有人注意到Windows程序中的这种行为奇怪?单击按钮时,TaskBar会向应用程序发送什么消息?谁负责确保所有应用程序的窗口都出现在前台?

在我的情况下,基础父母是一个MDI框架...以某种方式影响这个因素?

windows winapi

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

如何为 x64 编译静态 pthread-win32 lib?

看起来已经做了一些工作来使pthread-win32与 x64 一起工作,但没有构建说明。我尝试使用 Visual Studio x64 交叉工具命令提示符进行简单构建,但是当我尝试从 x64 应用程序链接到库时,它看不到任何函数导出。看起来它仍在将 lib 编译为 x86 或其他东西。

我什至尝试将 /MACHINE 添加到 makefile 的适当位置,但没有帮助。有人让它发挥作用吗?

c c++ windows 64-bit pthreads

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

在Python中查询块设备文件的大小

我有一个Python脚本,它读取标记不可读扇区的文件(通常来自光学媒体),允许重新尝试在不同的光学阅读器上读取所述不可读的扇区.

我发现我的脚本不能与块设备(例如/ dev/sr0)一起使用,以便创建包含的ISO9660/UDF文件系统的副本,因为它os.stat().st_size是零.该算法目前需要提前知道文件大小; 我可以改变这一点,但问题(知道块设备大小)仍然存在,而且这里没有回答,所以我打开这个问题.

我知道以下两个相关的SO问题:

因此,我问:在Python中,如何获取块设备文件的文件大小?

python linux filesize device

5
推荐指数
3
解决办法
5702
查看次数

函数中带有time.sleep()的sys.stdout.write()问题

我想要的是使用time.sleep()打印出每秒打印一个点的5个点,但结果是在延迟5秒后立刻打印了5个点.
尝试了print和sys.stdout.write,结果相同.

感谢您的任何建议.

import time
import sys

def wait_for(n):
    """Wait for {n} seconds. {n} should be an integer greater than 0."""
    if not isinstance(n, int):
        print 'n in wait_for(n) should be an integer.'
        return
    elif n < 1:
        print 'n in wait_for(n) should be greater than 0.'
        return
    for i in range(0, n):
        sys.stdout.write('.')
        time.sleep(1)
    sys.stdout.write('\n')

def main():
    wait_for(5)    # FIXME: doesn't work as expected

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print '\nAborted.'
Run Code Online (Sandbox Code Playgroud)

python buffering

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

如何在Mono上开发IronPython应用程序?

我可能需要编写一些在.Net(和Windows)上运行的GUI应用程序,而我可以使用的是Mono(在Ubuntu和/或Gentoo上).我对Python非常熟悉; 另外,我知道Mono Windows.Forms程序集似乎可以令人满意地使用(我使用Windows.Forms成功运行.Net应用程序).

我需要采取哪些步骤来建立一个可以在GNU/Linux机器上开发独立的IronPython的环境?另外,我非常欣赏一些.Net-Mono兼容性指针(例如我应该知道或避免的事情).

我不是在寻找IDE; 我很乐意使用vim进行编辑,我不介意以编程方式构建GUI.

注意:我实际要问的是,有以下帮助:

  • 我显然必须安装IronPython; 所以我确保安装了我的Mono软件包,然后运行IronPython安装程序(显然使用Mono),就像我在Windows上一样?这会让IronPython组件可用于Mono吗?如果没有,我该怎么办?Ubuntu 9.10有一个IronPython包,但它不是最新版本; 同时,出于兼容性目的,我无法升级Ubuntu安装.我找不到Gentoo的ebuild.
  • 我是否必须再安装组件?
  • 成功安装IronPython后,如何从IronPython源创建.Net/Mono可执行文件?有"适当"的方式吗?
  • 有没有办法在最终的.exe中"嵌入"IronPython(和任何其他必需的)程序集?

mono ironpython

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

比较Python中的多个词典

我是Python的新手,我遇到了一个问题,我无法用谷歌来解决问题.我使用wxPython和ObjectiveListView构建了一个GUI.在它的中心,GUI有一个列表控件,以X行显示数据(数据由用户加载)和五列.

当用户从列表控件中选择多个条目(按下CTRL或单击时移位)时,ObjectiveListView模块会给我一个字典列表,这些字典包含列表控件行中的数据.这正是我想要的,好!

返回的列表如下所示:

print MyList
[{'id':1023, 'type':'Purchase', 'date':'23.8.2008', 'sum':'-21,90', 'target':'Apple Store'}, {'id':1024, 'type':'Purchase', 'date':'24.8.2008', 'sum':'-21,90', 'target':'Apple Store'}, {'id':23, 'type':'Purchase', 'date':'2.8.2008', 'sum':'-21,90', 'target':'Apple Store'}]
Run Code Online (Sandbox Code Playgroud)

所有词典都具有相同的键,但值会发生变化.'id'值是唯一的.这里出现了问题.我想获取用户选择的所有项目的公共值.在上面的列表中,它们将是'sum':' - 21,90'和'target':'Apple Store'.

我不知道如何正确比较列表中的dicts.一个大问题是我事先不知道列表包含多少个词,因为它是由用户决定的.

我有一个模糊的想法,列表推导将是要走的路,但我只知道如何将两个列表与列表推导进行比较,而不是n列表.任何帮助,将不胜感激.

python data-mining

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

如何以编程方式查找Python已知的编解码器列表?

我知道我可以做以下事情:

>>> import encodings, pprint
>>> pprint.pprint(sorted(encodings.aliases.aliases.values()))
['ascii',
 'base64_codec',
 'big5',
 'big5hkscs',
 'bz2_codec',
 'cp037',
 'cp1026',
 'cp1140',
 'cp1250',
 'cp1251',
 'cp1252',
 'cp1253',
 'cp1254',
 'cp1255',
 'cp1256',
 'cp1257',
 'cp1258',
 'cp424',
 'cp437',
 'cp500',
 'cp775',
 'cp850',
 'cp852',
 'cp855',
 'cp857',
 'cp860',
 'cp861',
 'cp862',
 'cp863',
 'cp864',
 'cp865',
 'cp866',
 'cp869',
 'cp932',
 'cp949',
 'cp950',
 'euc_jis_2004',
 'euc_jisx0213',
 'euc_jp',
 'euc_kr',
 'gb18030',
 'gb2312',
 'gbk',
 'hex_codec',
 'hp_roman8',
 'hz',
 'iso2022_jp',
 'iso2022_jp_1',
 'iso2022_jp_2',
 'iso2022_jp_2004',
 'iso2022_jp_3',
 'iso2022_jp_ext',
 'iso2022_kr',
 'iso8859_10',
 'iso8859_11',
 'iso8859_13',
 'iso8859_14',
 'iso8859_15',
 'iso8859_16',
 'iso8859_2',
 'iso8859_3',
 'iso8859_4',
 'iso8859_5',
 'iso8859_6',
 'iso8859_7',
 'iso8859_8',
 'iso8859_9',
 'johab',
 'koi8_r',
 'latin_1',
 'mac_cyrillic',
 'mac_greek',
 'mac_iceland', …
Run Code Online (Sandbox Code Playgroud)

python internationalization character-encoding

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

缩放复杂numpy数组的实部

我有一个复数向量(FFT的结果),我想只用另一个向量中的因子来缩放复数的实部.

cplxarr= np.array([1+2j, 3+1j, 7-2j])
factarr= np.array([.5, .6, .2])
# desired result of cplxarr * factarr :
# np.array([.5+2j 1.8+1j 1.4-2j])
Run Code Online (Sandbox Code Playgroud)

(是的,它是关于非常具体的人类听觉频率响应.)
显然,与上面的矢量相乘也会对虚部进行缩放.

如何设置factarr以及我必须执行哪些操作才能获得所需的结果?如果它完全可能,也就是说,在不分离实部和虚部的情况下,缩放实部并重新组合为新的复矢量.

python numpy complex-numbers

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

中断当前正在执行的所有asyncio.sleep

哪里

这是在Linux,Python 3.5.1上.

什么

我正在开发一个监控程序asyncio,其任务在不同的地方awaitasyncio.sleep不同时间的电话.

有一些时间点,我希望能够中断所有所述asyncio.sleep呼叫并让所有任务正常进行,但我找不到如何做到这一点.一个示例是正常关闭监视器进程.

如何(失败的假设)

我以为我可以发送一个ALRM信号,但过程就会消失.我尝试用以下方法捕获ALRM信号:

def sigalrm_sent(signum, frame):
    tse.logger.info("got SIGALRM")

signal.signal(signal.SIGALRM, sigalrm_sent)
Run Code Online (Sandbox Code Playgroud)

然后我得到关于捕获SIGALRM的日志行,但是asyncio.sleep调用没有中断.

如何(kludge)

此时,我asyncio.sleep通过调用此协程替换了所有调用:

async def interruptible_sleep(seconds):
    while seconds > 0 and not tse.stop_requested:
        duration = min(seconds, tse.TIME_QUANTUM)
        await asyncio.sleep(duration)
        seconds -= duration
Run Code Online (Sandbox Code Playgroud)

因此,我只需要选择一个TIME_QUANTUM不太小也不太大的东西.

有没有办法打断所有正在运行的asyncio.sleep呼叫,我错过了它?

python linux async-await python-asyncio

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

Psyco x64?

有没有办法在x64架构上获得与32位处理器上的psyco相同的加速?

python psyco

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