小编eri*_*ric的帖子

在django-tables2中,显示的行数取决于屏幕大小?

使用django-tables2时,请使用该paginate参数来限制显示的行数.例如,如果我有表my_table,那么在views.py我设置它显示10行,如下所示:

RequestConfig(request, paginate={'per_page':10}).configure(my_table)
Run Code Online (Sandbox Code Playgroud)

我的问题是,在我的应用程序中,我希望每页显示的行数取决于用户屏幕的大小.例如,移动设备有10行,桌面屏幕有25行.我想象views.py你可以使用媒体规则(例如,@media(max-height: 480px) {do something})使用样式表做些什么.

不幸的是,我的(noob)理解是在Django中,视图与屏幕大小等低级参数相对隔离.但是,我不想实现一些方案,比如将模板中的信息发送到视图中,如果已经有一个简单的解决方案被烘焙到django-tables2中,我只是无知.

注意我使用Bootstrap4作为我的前端,如果这有任何区别.关键是我已经将Javascript和jQuery导入到项目中,至少在模板级别.

相关的一般性讨论
有趣的是,我没有看到很多关于将表行数调整为媒体类型的讨论,但显然有很多关于响应式媒体敏感设计的一般性讨论:

django django-tables2

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

在一行上有多个“using std::foo”语句的紧凑方法?

根据这里的建议(为什么“使用命名空间 std”被认为是不好的做法?),我正在避免using namespace std;. 然而,根据C++ Primer 3.1节中的内容,我一直在单独进行声明,如下所示:

using std::cout;
using std::cin;
using std::setw;
using std::setprecision;
Run Code Online (Sandbox Code Playgroud)

假设这被认为是一种可接受的做法,是否有一种紧凑的方法可以在一行中陈述所有这些内容?我知道我可以这样做:

using std::cout; using std::cin; using std::setw; using std::setprecision;
Run Code Online (Sandbox Code Playgroud)

但这并不是特别紧凑。本着定义变量时如何工作的精神,我尝试了以下操作:

using std::cout, std::cin, std::setw, std::setprecision;
Run Code Online (Sandbox Code Playgroud)

但我的编译器抛出异常。

如果我的假设是错误的(即,如果using std::cout;不是好的做法),那么这实际上可能就是答案。我当然对此持开放态度,因为我不想鼓励或编写臭代码。

c++ c++11

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

Tensorflow对象检测API:如何使用Imgaug进行扩增?

我一直在使用imgaug手动滚动增强器,因为我真的很喜欢tf对象检测api中不可用的一些选项。例如,我使用运动模糊,因为我的很多数据都有快速移动的模糊对象。

如何最好地将扩充序列与api集成在一起以进行实时训练?

例如,说我有一个增强器:

aug = iaa.SomeOf((0, 2), 
                 [iaa.Fliplr(0.5), iaa.Flipud(0.5), iaa.Affine(rotate=(-10, 10))])
Run Code Online (Sandbox Code Playgroud)

有什么方法可以配置对象检测API来解决此问题?

我当前正在做的是imgaug用来生成(增强)训练数据,然后tfrecord从该扩充管道的每次迭代中创建文件。这是非常低效的,因为在培训期间,我将大量数据保存到磁盘上,而不是即时运行扩充。

tensorflow object-detection-api data-augmentation

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

香农的熵计算

我有一个概率分布,定义了n可能状态的发生概率.

我想计算给定概率分布的香农熵值(以位为单位).

我可以wentropy(x,'shannon')用来获取值吗?如果可以,我可以在哪里定义系统可能的状态数?

statistics matlab probability information-theory

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

如何在Qt/PyQt/PySide中找到当前的QLocale?

如何找到当前有效的QLocale?我们可以找到默认的系统区域设置QLocale.system(),但是我希望找到类似QLocale.current()的区域设置,以检查我正在尝试进行的区域设置更改是否真正有效.

该文档有许多方法可用于设置区域设置或查找给定的属性QLocale.但是有一种简单的方法可以返回电流QLocale,以便我可以将这些方法应用于它(例如name())吗?

相关问题

python qt locale pyqt pyside

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

在QTreeView中用鼠标悬停突出显示项目?

我有一个QStandardItemModel我QTreeView用多列显示的东西.当鼠标悬停在行上时,如何突出显示行?

相关页面

qt pyqt pyqt4 pyside

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

如何获取 OpenCV 中 VideoCapture 对象的 4 字符编解码器代码?

如何从VideoCapture中的对象中检索四字符编解码器代码OpenCV 4?当我尝试检查它时,我得到了一个浮动:

import cv2

movie_name = 'fubar.mp4'
movie = cv2.VideoCapture(movie_path)
codec_code =  movie.get(cv2.CAP_PROP_FOURCC)
print(codec_code)
Run Code Online (Sandbox Code Playgroud)

这会打印出类似的内容828601953.0。有很多关于如何创建编解码器代码的线程,但我还没有找到任何关于如何从VideoCapturePython 中的任意对象中提取和读取代码的线程。

我知道文件名信息丰富(mp4),但这并没有真正指定我所追求的确切的四字符编码(例如,如果我想在某些处理后重新保存为新电影,或者只是显示代码作为元数据提供给用户)。

相关主题
有一个关于如何在 C++ 中执行此操作的主题,如果有人可以翻译成 Python,这将是我想的答案:
Qt or OpenCV: print out the codec of a video file

opencv python-3.x

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

在 QTreeView 中显示来自 QAbstractTableModel 的数据

简洁版本

我正在尝试显示 aQAbstracctTableModel中的数据QTreeView。当我这样做时,我最终将整个表显示为每个节点的子节点(以及孙节点,等等)。如何显示抽象表模型的树视图?

细节

QAbstractTableModel我正在尝试在a 中显示一些数据QTreeView。在模型-视图教程中,介绍了一个示例后QAbstractTableModel,它看起来就像替换为一样QTableView简单QTreeView:

您可以将上面的示例转换为具有树视图的应用程序。只需将 QTableView 替换为 QTreeView,就会生成一个读/写树。无需对模型进行任何更改。

当我进行此替换时,我最终会显示一棵树,但如果我单击任何图标来展开它(这应该不会执行任何操作,因为没有内置层次结构),Python 会崩溃并显示Python.exe has stopped working. 这个问题之前已经提出过],但没有可行的解决方案。

为了尝试修复此行为,我在子QAbstractTableModel类中重新实现了索引函数(请参阅下面的完整工作示例)。这会导致一种非常不同类型的错误。也就是说,树中的每个节点现在都包含整个表作为数据。无论我点击多少次,整个表格都会显示出来。像这样:

坏树

我似乎陷入了某种递归的噩梦中,不知道如何逃脱。下面的相关问题表明我可能必须转到QAbstractItemModel,但上面的教程引用表明不然(其中指出,无需对模型进行任何更改)。

相关问题

QTreeView总是显示相同的数据

完整的工作示例

from PySide import QtGui, QtCore

class Food(object):
    def __init__(self, name, shortDescription, note, parent = None):
        self.data = (name, shortDescription, note);
        self.parentIndex = parent

class FavoritesTableModel(QtCore.QAbstractTableModel):
    def __init__(self):
        QtCore.QAbstractTableModel.__init__(self)
        self.foods = …
Run Code Online (Sandbox Code Playgroud)

qt pyqt pyside

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

如何在 PySide/PyQt 中撤销对 QListWidgetItem 的编辑?

精简版

您如何为QListWidgetItems在 PySide/PyQt 中所做的编辑实现撤消功能?

来自 Qt 教程的提示?

以下为 Qt 用户 (c++) 编写的教程可能有答案,但我不是 c++ 人,所以有点迷失:使用项目视图撤消/重做

更长的版本

我正在使用 aQListWidget来了解 PyQt 的撤消框架(借助有关该主题的文章)。当我自己实现一个命令(比如从列表中删除一个项目)时,我可以撤消/重做。

我还想让QListWidgetItems小部件中的 可编辑。这很简单:只需ItemIsEditable为每个项目添加标志即可。问题是,如何将此类编辑推送到撤消堆栈上,以便我可以撤消/重做它们?

下面是一个简单的工作示例,它显示了一个列表,可让您删除项目,以及撤消/重做此类删除。应用程序同时显示列表和撤消堆栈。需要做什么才能对该堆栈进行编辑?

简单的工作示例

from PySide import QtGui, QtCore

class TodoList(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.initUI()
        self.show()

    def initUI(self):
        self.todoList = self.makeTodoList()
        self.undoStack = QtGui.QUndoStack(self)
        undoView = QtGui.QUndoView(self.undoStack)
        buttonLayout = self.buttonSetup()
        mainLayout = QtGui.QHBoxLayout(self)
        mainLayout.addWidget(undoView)
        mainLayout.addWidget(self.todoList)
        mainLayout.addLayout(buttonLayout)
        self.setLayout(mainLayout)
        self.makeConnections()

    def buttonSetup(self):
        #Make buttons 
        self.deleteButton = QtGui.QPushButton("Delete") …
Run Code Online (Sandbox Code Playgroud)

python pyqt qlistwidget pyside

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

使用委托垂直居中项目的文本 (PySide/Qt/PyQt)

我有一个自定义委托QTableView,允许显示/编辑 html 字符串(使用 a QTextDocument)。下面有一个 SSCCE。

不幸的是,当我使用 显示文本时paint(),它没有垂直居中,但似乎顶部对齐。例如,如果我将委托应用于第二列,而不是第一列,则表如下所示:

问题

我的搜索没有揭示任何关于如何以原则性的方式从委托内部解决此问题的信息。在我的计算机上手动添加 5 是option.rect.y()可行的,但我不认为这是有原则的。

有没有办法让文字垂直居中?

SSCCE

from PySide import QtGui
import sys

class HtmlTable(QtGui.QTableView):
    def __init__(self, parent = None):    
        QtGui.QTableView.__init__(self)
        model = QtGui.QStandardItemModel()
        model.setHorizontalHeaderLabels(['Title', 'Summary'])
        item0 = [QtGui.QStandardItem('Infinite Jest'), QtGui.QStandardItem('Hello, <i>Hal</i>')]
        item00 = [QtGui.QStandardItem('Hamlet'), QtGui.QStandardItem('Best served <b>cold</b>')]
        model.appendRow(item0)
        model.appendRow(item00)          
        self.setModel(model)
        self.setItemDelegate(HtmlPainter(self))

class HtmlPainter(QtGui.QStyledItemDelegate):
    def __init__(self, parent=None):
        QtGui.QStyledItemDelegate.__init__(self, parent)
    def paint(self, painter, option, index):
        if index.column() == 1: 
            text = index.model().data(index) #default role is display
            palette = …
Run Code Online (Sandbox Code Playgroud)

qt pyqt pyside

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