根据
http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html
我可以用一个整数参数来定义一个pyqt4信号 mysignal = pyqtSignal(int).如何定义一个信号,该信号采用整数和字符串列表,或更一般地称为myobject参数的对象.
M-x flush-lines ^$
Run Code Online (Sandbox Code Playgroud)
删除缓冲区中的所有空行.但是我只想删除额外的空白行,即如果有n个连续的空行我要删除n-1并保留一行.
我知道delete-blank-lines可以完成这一点下空行的工作,但是我想要一个适用于整个缓冲区的简单解决方案.
任何想法如何做到这一点?特别是可以修改我的第一个例子中的正则表达式^ $以仅匹配额外的行吗?
我怎么可以自定义字符串WM_NAME和WM_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.py并xprop为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_NAME和WM_CLASS另一个自定义值(与文件名不同)?
如何为整个程序设置它?如何针对每个GUI元素调整它?
到目前为止,我使用git来管理我的乳胶文件.但是,git会立即管理文件夹中的所有latex文件.
我想要的是一个版本控制系统
也许用git可以做到这一点,但我不知道怎么做.那么有没有用于此目的的好的,方便的版本控制系统?
也许我应该补充一点,我使用linux作为os和emacs作为latex-editor.
假设我有一个pyqt4表小部件,例如:
self.table = QtGui.QTableWidget(3,4)
Run Code Online (Sandbox Code Playgroud)
随着self.table.clear()我可以删除表的所有内容.但是,如何删除表格中的所有单元格,而不仅仅是内容?
我试图将一个ikiwiki分成两个wiki.
假设我有一个名为myiki的ikiwiki(比较来自 ikiwiki.info的这个问题),其中包含页面
pageA1,pageA2,...,pageB1,pageB2,...
Run Code Online (Sandbox Code Playgroud)
现在我想有两个称为wiki myikiA和myikiB,使得:
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)
任何想法它有什么问题?
有没有办法给出一个页面列表并拆分维基如上所述?
这是对此答案的后续问题: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 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 源代码保存在同一个组织文件中。
假设我有两个列表
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方式来做到这一点?
考虑一个QTableWidget和两个按钮"向上移动"和"向下移动".单击向上移动,当前行应向上移动一行,类似于"向下移动".
实现相应的上移和下移功能的最简单方法是什么?
我正在研究这个 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) 我正在尝试使用 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) 使用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]