小编Hub*_*chr的帖子

addStretch究竟是如何在QBoxLayout中工作的?

我正在做一个关于盒子布局的PyQt4教程.但我不明白它是如何addStretch运作的.

  • 如果我使用vbox.addStretch(1)hbox.addStretch(1),则两个按钮显示在右下方.为什么?
  • 如果我评论vbox.addStretch(1)hbox.addStretch(1)退出,两个按钮出现在我的窗口中央,它们可以水平变形,但不能垂直变形.为什么?
  • 如果我改变值"1"没有区别......那么这个值有什么作用呢?

以下是我正在使用的代码:

import sys
from PyQt4 import QtGui

class BoxLayout(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setWindowTitle('box layout')

        ok = QtGui.QPushButton("OK")
        cancel = QtGui.QPushButton("Cancel")

        vbox = QtGui.QHBoxLayout()
        vbox.addStretch(1)
        vbox.addWidget(ok)
        vbox.addWidget(cancel)

        hbox = QtGui.QVBoxLayout()
        hbox.addStretch(1)
        hbox.addLayout(vbox)

        self.setLayout(hbox)

        self.resize(100, 100)

app = QtGui.QApplication(sys.argv)
qb = BoxLayout()
qb.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

python layout pyqt qboxlayout

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

如何在循环中使用`numpy.savez`来保存多个数组?

从一个循环我得到一个数组.我想将这个数组保存在一个tempfile.问题是np.savez只保存循环中的最后一个数组.我想我明白为什么会这样,但不知道怎么做得更好.

为了解决我的问题,我有了打开tempfile的想法,mode=a+b目的是从循环中追加新的数组.但这不起作用.

我的代码到目前为止:

tmp = TemporaryFile(mode="a+b")    
for i in range(10):
  array = getarray[i]  #demo purpose
  np.savez(tmp,array)
tmp.seek(0)
Run Code Online (Sandbox Code Playgroud)

然后使用tempfile读取数组:

tmp_read = np.load(tmp)
print tmp_read.files
[OUTPUT]: ['arr_0']
Run Code Online (Sandbox Code Playgroud)

但我想在tempfile中有10个数组.有任何想法吗?
谢谢

python arrays numpy

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

我怎么能在我的x/y标签附近放一个箭头?

我正在使用matplotlib,我想在我的"轴 - 传奇"旁边放一个箭头.但我不知道怎么做.在示例中,我想要的箭头以红色绘制. 例 谢谢

matplotlib python-2.7

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

来自“ Itemchanged”信号的行和列

我正在处理“ itemchanged”信号。
我如何找出更改项目的行和列?我只发现了相同的问题,但对于C ++。即时通讯使用python。

qtablewidget python-2.7

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

如何从剧情中获得所有传说?

我有2个或更多图例的剧情。如何“获得”所有图例以更改(例如)图例中的颜色和线条样式?

handles, labels = ax.get_legend_handles_labels()只给了我“第一个”图例,我将其添加到绘图中plt.legend()。但是我也想要其他传说,我将其添加到plt.gca().add_artist(leg2) 我该怎么做?

python plot matplotlib

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

什么是“角色”?它从何而来?(编辑QTableView单元格后如何更改背景颜色?)

我试图在编辑 qtable 单元格后更改它的背景颜色。我已经看过问题“编辑 QTableView 单元格后如何更改背景颜色? ”,我遇到的问题是,在答案的示例中,我不明白“角色”来自哪里。我的意思是,角色在哪里声明以及角色在哪里改变其值?我只看到角色与“Qt.Core.xxx”相比的位置

import sys
from PyQt4 import QtGui, QtCore

class Model(QtCore.QAbstractTableModel):
    def __init__(self, parent=None):
        super(Model, self).__init__(parent)

    # list of lists containing [data for cell, changed]
    self._data = [[['%d - %d' % (i, j), False] for j in range(10)] for i in range(10)]

    def rowCount(self, parent):
        return len(self._data)

    def columnCount(self, parent):
        return len(self._data[0])

    def flags(self, index):
        return QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled |QtCore.Qt.ItemIsEditable

    def data(self, index, role):
        if index.isValid():
            data, changed = self._data[index.row()][index.column()]

        if role in [QtCore.Qt.DisplayRole, QtCore.Qt.EditRole]: …
Run Code Online (Sandbox Code Playgroud)

python pyqt qtableview

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

从QTableView的每个单元格中获取数据

我需要来自a的值QtableView,但如果没有从表中发出的信号,我不知道该怎么做.

该表从txt文件中获取其值.从表中,我想使用值,但没有在表中工作.该表只是一个缓冲区.那么如何从表中"获取"所有值,只需按a QPushButton,而不会从表本身发出任何信号?

python pyqt qtableview

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

如何从 valueChanged 信号中找到发射器 Spinbox?

我有几个 Spinbox,如果值发生更改,我希望它们更改背景颜色。

使用此连接命令:

self.doubleSpinBox_1.valueChanged.connect(self.color)
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试是:

def color(self):
   send = self.sender()
   emitter = send.text()
Run Code Online (Sandbox Code Playgroud)

问题是,“send.text()”返回更改后的值,而不是旋转盒发出信号。在有关 QDoubleSpinBox 的文档中,我搜索了诸如“setName”之类的内容,或用于识别我的发件人旋转框的内容,但我没有找到任何内容。

pyqt signals-slots sender

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

如何将菜单栏添加到 QWidget?

我有一个 Qwidget,它通常显示在 Qmainwindow 中。有时不需要使用整个主窗口,因为您只想使用某个 Qwidget 的功能。如果是这种情况,我希望我的小部件中有一个菜单栏。

我试过:

if parent  == "self":
    self.layout().addMenubar(self)
Run Code Online (Sandbox Code Playgroud)

但是使用上面的代码它只是停止编译而不会引发任何错误。我做错了什么?谢谢!

python pyqt qwidget

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

如何在同一窗口中绘制来自不同函数的2个子图(图)?

由于特定原因,我有两个功能,每个功能在两个不同的窗口中创建一个图.是否可以在一个窗口中统一这两个图,而不统一功能?谢谢!

编辑:我有2个涉及的函数和一个数据库:file1.py中的函数1绘制了一个2d线图:

plt.figure("TEST12") 
ax=plt.subplot(111)
ax.plot(array[:,10])
Run Code Online (Sandbox Code Playgroud)

在file2.py中我的另一个函数,它绘制了一个填充的轮廓:

plt.figure("TEST13")
ax = plt.subplot(111)
ax.contourf(x,y,data)
plt.gca().set_aspect('equal')
Run Code Online (Sandbox Code Playgroud)

如果我plt.show像往常一样使用,结果是2个不同的窗口.

python matplotlib subplot

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

如何初始化循环中的列表然后追加?

可以初始化循环内的列表,并在同一循环中将对象追加到列表中,而不会在启动它时始终清除列表?

for j in range(5):    
  mylist=[]
  mylist.append(j)
Run Code Online (Sandbox Code Playgroud)

结果将是一个包含一个元素的列表,但当然我想要一个包含5个元素的列表.有一个很好的方法吗?

我问,因为我需要初始化函数中的列表并多次使用此函数,每次使用该函数时都不清除列表,而是附加新对象.你明白我的意思吗?目前我正在使用这样的东西:

if first == True:
  mylist = []
  first = False

mylist.append("bla")
Run Code Online (Sandbox Code Playgroud)

但它看起来不太好看.
在此先感谢,抱歉我的英语:)

python loops list

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