小编Art*_*tem的帖子

如何在 QGraphicsScene 中正确放置小部件

我正在尝试实现一个小部件(一个临时工具箱),它将放置在场景的右侧。它应该看起来像这样:

问题

在移动和缩放视图时将其正确放置在那里并保持相同的大小和位置是一个问题。

小部件本身是一个 QComboBox。我尝试将其作为 QGraphicsWidget 放入场景中,将 ZValue 设置为较高的数字并将其设置为 QGraphicsLinearLayout。不幸的是,我无法将其与左侧对齐,而且我觉得我的做法是错误的。

这是一个草图:

from PySide2 import QtWidgets, QtCore, QtGui
import sys

def hex2QColor(color):
    r = int(color[0:2], 16)
    g = int(color[2:4], 16)
    b = int(color[4:6], 16)
    return QtGui.QColor(r, g, b)

class rotateGroupBox(QtWidgets.QGroupBox):
    """Create content to fill the widget"""
    def __init__(self, parent=None):
        super(rotateGroupBox, self).__init__(parent)

        self.setTitle("Rotation")

        self.l_rotate = QtWidgets.QSpinBox()
        self.l_rotate.setRange(0, 360)

        self.r_rotate = QtWidgets.QSpinBox()
        self.r_rotate.setRange(0, 360)

        self.l_label = QtWidgets.QLabel("Left: ")
        self.r_label = QtWidgets.QLabel("Right: ")

        layout = QtWidgets.QVBoxLayout()

        l1 = QtWidgets.QHBoxLayout()
        l1.setContentsMargins(0,0,0,0)
        l1.addWidget(self.l_label)
        l1.addWidget(self.l_rotate)

        l2 = QtWidgets.QHBoxLayout() …
Run Code Online (Sandbox Code Playgroud)

python qgraphicsview qgraphicsscene pyside2

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

PySide2 Qt3D 网格不显示

我正在研究 Qt3D 框架并决定复制这个c++ 示例的简化版本

不幸的是,我在应用程序启动时没有看到环面网格。我已经创建了所有必需的实体并在SceneModifier类中启用了一个网格。

它可能有什么问题?我以为我的相机实施不好,但似乎没问题。与点光源相同。

import sys
from PySide2 import QtWidgets, QtCore, QtGui
from PySide2.Qt3DCore import Qt3DCore
from PySide2.Qt3DExtras import Qt3DExtras
from PySide2.Qt3DRender import Qt3DRender


class SceneModifier(QtCore.QObject):
    def __init__(self, root_entity=None):
        super().__init__()

        # Scene entity
        self._m_root_entity = Qt3DCore.QEntity(root_entity)

        # Torus shape data
        self.m_torus = Qt3DExtras.QTorusMesh()
        self.m_torus.setRadius(1.0)
        self.m_torus.setMinorRadius(0.4)
        self.m_torus.setRings(100)
        self.m_torus.setSlices(20)

        # Torus transform
        torus_transform = Qt3DCore.QTransform()
        torus_transform.setScale(2.0)
        torus_transform.setRotation(QtGui.QQuaternion.fromAxisAndAngle(QtGui.QVector3D(0.0, 0.1, 0.0), 25.0))
        torus_transform.setTranslation(QtGui.QVector3D(0.0, 0.0, 0.0))

        # Torus material
        torus_mat = Qt3DExtras.QPhongMaterial()
        torus_mat.setDiffuse(QtGui.QColor(255, 102, 0))

        # Torus mesh
        self.m_torus_entity …
Run Code Online (Sandbox Code Playgroud)

python qt3d pyside2

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

Python:Sphinx 命名元组文档

我正在尝试记录namedtuple。当我构建文档时,我WARNING: duplicate object description在记录的函数之后收到警告和相同的空函数。例如:在此输入图像描述

如何删除这些别名?我已经尝试过这个解决方案,编写了一些函数来conf.py创建空属性。

另外,我认为值得一提的是,构建后我得到了一个使用说明:noindex:,但我不明白应该在哪里使用它?在我的文档字符串、第一个文件或其他地方?

代码示例:


File = namedtuple("File", ["path", "size", "extension",
                           "adate", "mdate", "links",
                           "user_owner", "group_owner",
                           "inode", "device", "permissions",
                           "depth"])
"""File attributes.

.. py:attribute:: path

    **-** path to the found file

     .. note::
        depending on command-line arguments can be absolute or relative
...
Run Code Online (Sandbox Code Playgroud)

python python-sphinx autodoc

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

如何解决 QFileDialog 的过滤参数问题?

我想使用QFileDialog创建一个文件对话框,以选择要在QMediaPlayer中设置的音频文件,并使用文件扩展名掩码(*.mp3, *.ogg, *.flac)。不幸的是,它不起作用,因为它应该将最后一个扩展作为过滤器属性。

我已经尝试过 PyQt5 和 PySide2,结果是相同的。它在过滤器列表中显示具有最新扩展名的文件,例如仅 *.mp3 或 *.flac

audioFormats = "*.mp3, *.wav, *.ogg, *.wma, *.flac"
print(f"these are formats: {audioFormats}")
self.track, _ = self.getOpenFileName(parent=self, caption="Set track file", filter=f"Audio files ({audioFormats})")
Run Code Online (Sandbox Code Playgroud)

我预计它会显示具有所有这些扩展名的文件。

python qfiledialog qmediaplayer pyqt5 pyside2

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

Imagemagick - 如何创建适合任何图像大小的注释?

我需要编写一个 bash 脚本,使用 imagemagick 注释给定的图像。问题是,该图像可以是任何大小,并且其注释在任何图像上看起来都应该几乎相同。

任何图像上的输出结果都应如下所示:

图像

所以我想弄清楚以下几点:

  1. 如何绘制一个带有文本的透明矩形,该矩形会根据图像大小调整其大小?
  2. 如何像示例中那样将该矩形放置在图像的底部?

bash imagemagick imagemagick-convert

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