小编Kat*_*tya的帖子

如何使用matplotlib紧配图?

我找到了pyplot的tight_layout函数,并希望使用它.在我的应用程序中,我将matplotlib图嵌入到Qt GUI中并使用数字而不是pyplot.有什么办法可以在那里申请tight_layout吗?如果我在一个图中有多个轴,它也会工作吗?

python matplotlib figure

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

PyQt4:将QCineEdit的textChanged和editingFinished结合起来

有没有办法结合textChangededitingFinishedQLineEdit?问题是,editingFinished即使我只是将光标移开QLineEdit而没有任何改变,也会发出这个问题.而我只想在完成编辑后执行任何更改时才发出信号.

我可以想象只存储当前文本的某个地方,将输入的文本与它进行比较,并且仅在它不同时才执行某些操作.但我想知道是否有任何纯粹基于信号处理的解决方案.

编辑:最后我必须存储当前文本并与新文本进行比较,而不是遵循建议的解决方案.我意识到在我的应用程序"1.2345"和"1.23"将是相同的文本但是我必须在这种情况下更新一些其他值,依此类推.我非常感谢@Avaris和@ekhumoro的详细答案和评论,并且会接受它,因为它似乎解决了最初发布的问题.

qt qt4 pyqt pyqt4

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

在Python3/Numpy中过滤数组并返回索引

Python3/Numpy中是否有任何内置函数可以过滤数组并返回剩下的元素的索引?类似于numpy.argsort的东西用于排序.我的滤波器设置了最小和最大阈值 - 必须滤除低于/高于最小值/最大值的所有值.

我见过Python的函数过滤器,但我没有看到使用它提取索引的方法.

编辑:答案中有很多有用的信息,谢谢!

正如@SvenMarnach指出的那样,面具就足够了:

mask = (min_value < a) & (a < max_value)
Run Code Online (Sandbox Code Playgroud)

现在我必须将此蒙版应用于其他形状相同的阵列a,但不确定最佳方法是什么...

python filtering numpy python-3.x

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

如何设置QTextDocument边距和其他属性(setHTML,print to pdf)?

我有以下certificate类用于从一些图像和数据中生成pdf文档.设置图像源后,我调用generate()函数并获取test.pdf输出文件.该文档是基于QTextDocument类使用setHtml(html)方法创建的.

问题是我在文档周围有很大的空白区域,而我希望带有徽标图像的标题"REPORT"位于页面的最顶层.我还想在表格中添加下边框,但据我所知,Qt(支持的HTML子集)不支持它.

Python3代码:

class certificate:

def __init__(self):
    self.logo = None
    pdffile = 'test.pdf'
    self.histogram = None
    self.printer = QPrinter()
    self.printer.setPageSize(QPrinter.Letter)
    self.printer.setOutputFormat(QPrinter.PdfFormat)
    self.printer.setOutputFileName(pdffile)

def generate(self):
    document = QTextDocument()
    html = ""
    html += ('<head><title>Report</title><style></style></head>'
                 '<body><table width="100%"><tr>'
                    '<td><img src="{}" width="30"></td>'
                    '<td><h1>REPORT</h1></td>'
                 '</tr></table>'
                 '<p align=right><img src="{}" width="300"></p>'
                 '<p align=right>Sample</p></body>').format(self.logo, self.histogram)
    document.setHtml(html)
    document.print_(self.printer)
Run Code Online (Sandbox Code Playgroud)

我之前从未广泛使用过html,也从未使用过QTextDocument,并且非常感谢有关如何控制文档边距和表格属性的任何建议.

我想控制的其他相关属性是分辨率 - 我使用像素图像大小,需要知道页面和边距大小(以像素为单位).

编辑:问题几乎由@mata回答.我现在可以设置任何边距和分辨率,但不了解如何控制图像和字体大小.例如,如果我需要一个图像总是50毫米宽,并且html标题和主文本字体大小在视觉上是相同的 - 如何实现它?

EDITED2:最后一部分也解决了.这是@mata的修改代码,它为任何dpi值提供相同的结果:

dpi=96

document = QTextDocument()
html = """
<head>
    <title>Report</title> …
Run Code Online (Sandbox Code Playgroud)

html qt4 pyqt4 python-3.x

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

将用户交互与程序化改变分开:PyQt,QComboBox

我的PyQt4/Python3 GUI中有几个QComboBox,它们在初始化期间填充了数据库中的一些条目.初始CurrentIndex设置为0.还有一个复选框,用于更改组合框中项目的语言.为了保留当前用户选择,我在用已翻译项填充ComboBox后,将当前项的索引和setCurrentIndex备份到此数字.所有这些操作都会发出currentIndexChanged信号.

根据QComboBoxes中选择的项目,显示一些图表.我们的想法是在线重绘图表 - 只要用户更改任何ComboBox当前项目.在这里我遇到了一个问题,因为如果我每次重写信号currentIndexChanged时都会重绘图,我会在初始化期间重新绘制它几次并且如果更改了翻译复选框选项.

分离这些案件的最佳方法是什么?原则上我需要将程序化的当前索引更改与用户分开,并且仅在稍后的情况下更新绘图(在GUI初始化期间,我可以以编程方式调用更新绘图函数一次).我应该写/重写任何信号吗?如果是这样,我以前从未这样做,并欢迎任何提示或一个好例子.用另一个信号?或者也许有办法暂时阻止所有信号?

pyqt signals-slots pyqt4 qcombobox python-3.x

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

在Excel工作表中插入图像

在我的Office 2010 xlsm工作表中,我创建了一个名为固定大小的Image ActiveX控件Image1.在我看来,以下宏应该将图像路径设置为在单元格中指定的路径B3,但它在"Image1.Picture"行中出现"运行时错误'424':对象必需"错误消息.我检查过imPath等于"C:\some\valid\image\path.jpg".

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$B$3" Then
        imPath = Range("B3")
        Image1.Visible = True         
        Image1.Picture = imPath
        Image1.PictureSizeMode = fmPictureSizeModeZoom   
        Image1.BorderStyle = fmBorderStyleNone    
        Image1.BackStyle = fmBackStyleTransparent
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

这有什么不对?BTW,有没有办法检查指定的文件是否确实存在?

excel vba worksheet-function excel-vba

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