小编stu*_*ent的帖子

使用列表作为参数定义pyqt4信号

根据

http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html

我可以用一个整数参数来定义一个pyqt4信号 mysignal = pyqtSignal(int).如何定义一个信号,该信号采用整数和字符串列表,或更一般地称为myobject参数的对象.

python signals signals-slots pyqt4

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

删除emacs中的额外空白行

M-x flush-lines ^$ 
Run Code Online (Sandbox Code Playgroud)

删除缓冲区中的所有空行.但是我只想删除额外的空白行,即如果有n个连续的空行我要删除n-1并保留一行.

我知道delete-blank-lines可以完成这一点下空行的工作,但是我想要一个适用于整个缓冲区的简单解决方案.

任何想法如何做到这一点?特别是可以修改我的第一个例子中的正则表达式^ $以仅匹配额外的行吗?

regex emacs

12
推荐指数
3
解决办法
4980
查看次数

在PyQt4中自定义WM_NAME和WM_CLASS(如xprop所示)

我怎么可以自定义字符串WM_NAMEWM_CLASS一个的PyQt4程序如图xprop

考虑例如:

from PyQt4 import QtGui, QtCore
import sys

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)
    app.setStyle("plastique")


    listView = QtGui.QListView()    
    listView.show()

    combobox = QtGui.QComboBox()
    combobox.show()    

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

如果我xprop_test.py通过python xprop_test.pyxprop为ListView或ComboBox 调用linux工具来运行它(文件被调用),它显示

WM_NAME(STRING) = "xprop_test.py"
Run Code Online (Sandbox Code Playgroud)

WM_CLASS(STRING) = "xprop_test.py", "Xprop_test.py"
Run Code Online (Sandbox Code Playgroud)

如何设置字符串WM_NAMEWM_CLASS另一个自定义值(与文件名不同)?

如何为整个程序设置它?如何针对每个GUI元素调整它?

python pyqt4

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

版本控制系统,用于跟踪单个文件

到目前为止,我使用git来管理我的乳胶文件.但是,git会立即管理文件夹中的所有latex文件.

我想要的是一个版本控制系统

  • 每个文件分别给我一个历史记录
  • 让我检查单个文件的旧版本,而不会影响其他文件
  • 让我为每个单独的文件创建分支,影响其他文件
  • 为各个文件的版本提供标签

也许用git可以做到这一点,但我不知道怎么做.那么有没有用于此目的的好的,方便的版本控制系统?

也许我应该补充一点,我使用linux作为os和emacs作为latex-editor.

linux version-control latex

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

如何删除pyqt4 tablewidget中的所有单元格?

假设我有一个pyqt4表小部件,例如:

self.table = QtGui.QTableWidget(3,4)
Run Code Online (Sandbox Code Playgroud)

随着self.table.clear()我可以删除表的所有内容.但是,如何删除表格中的所有单元格,而不仅仅是内容?

python pyqt4

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

拆分ikiwiki

我试图将一个ikiwiki分成两个wiki.

假设我有一个名为myiki的ikiwiki(比较来自 ikiwiki.info的这个问题),其中包含页面

pageA1,pageA2,...,pageB1,pageB2,...
Run Code Online (Sandbox Code Playgroud)

现在我想有两个称为wiki myikiAmyikiB,使得:

  • myikiA包含pageA1,pageA2,...
    历史myikiA应该包含那些页面的整个历史,但没有历史记录pageB1,pageB2,...

和:

  • myikiB包含pageB1,pageB2,...
    历史myikiB应该包含那些页面的整个历史但没有历史记录pageA1,pageA2,...

在第一步中,我制作了一份我的副本,scrdir并试图删除一个名为foothis 的页面(注意,在scrdir那里有文件调用foo.mdwn和目录foo).
为此,我执行了以下命令:

sudo git filter-branch --tree-filter 'find . -name foo* -exec rm -r -f  {} \;' --prune-empty -f HEAD

Rewrite 3cbc4646145e31cf7ce23d5e8397baaebab64c60 (179/1439)find: `./index/testdir/foo': No such file or directory
tree filter failed: find . -name foo* -exec rm -r -f  {} \;
Run Code Online (Sandbox Code Playgroud)

任何想法它有什么问题?

有没有办法给出一个页面列表并拆分维基如上所述?

git wiki ikiwiki

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

在pyqt4中按下修改键时,将所有键盘命令自动传送到嵌入式mplayer实例

这是对此答案的后续问题:https://stackoverflow.com/a/11939294/406686:

考虑下面的代码,它将mplayer嵌入到QWidget.问题是它不会对任何mplayer键盘快捷键做出反应,例如右箭头用于向前搜索等等.

很明显,我可以手动重新实现每个快捷方式.但是有一种方法可以将所有键盘序列自动输送到mplayer,只要按下一个修改键,比如ALT或Win-Key?

例如:按ALT+ =向前搜索...

import mpylayer
from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.container = QtGui.QWidget(self)
        self.container.setStyleSheet('background: black')
        self.button = QtGui.QPushButton('Open', self)
        self.button.clicked.connect(self.handleButton)
        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.container)
        layout.addWidget(self.button)
        self.mplayer = mpylayer.MPlayerControl(
            'mplayer', ['-wid', str(self.container.winId())])

    def handleButton(self):
        path = QtGui.QFileDialog.getOpenFileName()
        if not path.isEmpty():
            self.mplayer.loadfile(unicode(path))

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.resize(640, 480)
    window.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

python keyboard qt4 pyqt4 mplayer

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

将 emacs org-mode 表读入 python pandas 数据帧的优雅方法

使用 python pandas 时,我经常喜欢使用 emacs org-mode 创建表。为了阅读表格,我做了类似的事情

import pandas as pd
from numpy import *

D = pd.read_csv('file.dat',sep='|')
D = D.drop(D.columns[0], axis=1)
D = D.drop(D.columns[-1], axis=1)
D = D.rename(columns=lambda x: x.strip())
Run Code Online (Sandbox Code Playgroud)

是否有更优雅(特别是更短)的方法将 org-mode 表读入 pandas 数据帧?也许还有一种优雅的方法可以将表和 python 源代码保存在同一个组织文件中。

python emacs org-mode dataframe pandas

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

Pythonic将两个列表"合并"到元组列表的方法

假设我有两个列表

L1 = [1,2,3]

L2 = [a,b,c]

什么是将其转换为列表的最快方法M = [(1,a),(2,b),(3,c)]

我试过M = [(x,y) for x in L1 for y in L2]但这给了我所有可能的元素组合.当然我可以写一个循环来做它,但有更多的pythonic方式来做到这一点?

python list

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

在PyQT4中上下移动行

考虑一个QTableWidget和两个按钮"向上移动"和"向下移动".单击向上移动,当前行应向上移动一行,类似于"向下移动".

实现相应的上移和下移功能的最简单方法是什么?

python pyqt pyqt4 qtablewidget

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

Python 中的点语法是什么意思?

我正在研究这个 matplotlib 示例,但不理解点语法:

import matplotlib.pyplot as plt
import matplotlib.patches as patches
class DraggablePoint:
    lock = None #only one can be animated at a time
    def __init__(self, point):
        self.point = point
        self.press = None
        self.background = None

    def connect(self):
        'connect to all the events we need'
        self.cidpress = self.point.figure.canvas.mpl_connect('button_press_event', self.on_press)
        self.cidrelease = self.point.figure.canvas.mpl_connect('button_release_event', self.on_release)
        self.cidmotion = self.point.figure.canvas.mpl_connect('motion_notify_event', self.on_motion)

    def on_press(self, event):
        if event.inaxes != self.point.axes: return
        if DraggablePoint.lock is not None: return
        contains, attrd = self.point.contains(event)
        if not contains: …
Run Code Online (Sandbox Code Playgroud)

python syntax

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

极坐标中的 pcolormesh

我正在尝试使用 matplotlib 绘制 H 原子波函数的概率密度。我设法在笛卡尔坐标中做到这一点,但对于以后的计算,如果我在极坐标中指定 psi 会更好。现在我试图使绘图工作,但它给出了错误的结果(尽管绘图的轴线应该是笛卡尔坐标)。知道如何解决这个问题吗?

import numpy as np
from matplotlib import pyplot as plt 
import matplotlib.cm as cm 
from scipy import integrate


Z = 1
a_0 = 1
pi = np.pi


n = 300
r = np.linspace(-10, 10, n) 
theta = np.linspace(0, 2*pi, n) 
R, Theta = np.meshgrid(r, theta) 


def psi(r,theta):
    return 1/(4*sqrt(2*pi))*(Z/a_0)**(3/2) * Z*r/a_0*np.exp(-Z*r/(2*a_0))*np.cos(theta)


X1 = R*np.cos(Theta)
X2 = R*np.sin(Theta)

plt.pcolormesh(X1,X2,psi(R,Theta)**2)
plt.axis('equal')
plt.show()
Run Code Online (Sandbox Code Playgroud)

不正确的输出:

输出不正确

如果我用笛卡尔坐标计算它,我会得到我想要的:

import numpy as np
from matplotlib import pyplot as plt 
import …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

多个数组的元素最大值(和最小值)

使用numpy.maximum函数我可以在 python 中获取两个数组的元素最大值。

例如:

import numpy as np

a = [1,2,3]
b = [2,3,1]

print(np.maximum(a, b))
Run Code Online (Sandbox Code Playgroud)

结果是:[2 3 3]

如何对三个、四个或 n 个数组执行相同操作?

例如,对于以下代码:

import numpy as np

a = [1,2,3]
b = [2,3,1]
c = [3,2,1]
Run Code Online (Sandbox Code Playgroud)

我想要一个函数返回[3 3 3]

python numpy

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