RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-233372

Павел's questions

Martin Hope
Павел
Asked: 2025-03-02 02:26:11 +0000 UTC

如何在 PyQt5 中取消 GraphicsEffect 从父级到子级的继承?

  • 5

在线找到的解决方案没有帮助。下面是一个可重现的例子。我们希望子椭圆不投射阴影,而父椭圆应该保留阴影。

from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGraphicsEllipseItem, QGraphicsDropShadowEffect
from PyQt5.QtGui import QColor, QRadialGradient, QPainter
from PyQt5.QtCore import Qt

class Scene(QGraphicsScene):
    def __init__(self):
        super(Scene, self).__init__()
        self.setBackgroundBrush(QColor(230, 240, 220))

        # Создание эллипсов
        ellipse_parent = QGraphicsEllipseItem(0, 0, 300, 200)
        ellipse_child = QGraphicsEllipseItem(50, 20, 80, 60)

        # Наложение тени на родительский элемент
        shadow_effect = QGraphicsDropShadowEffect()
        shadow_effect.setBlurRadius(5)
        shadow_effect.setOffset(5, 5)
        ellipse_parent.setGraphicsEffect(shadow_effect)

        # Установка дочернего элемента
        ellipse_child.setParentItem(ellipse_parent)

        # Отмена эффекта тени на дочернем элементе
        child_shadow_effect = QGraphicsDropShadowEffect()
        child_shadow_effect.setEnabled(False)  # Отключение эффекта
        ellipse_child.setGraphicsEffect(child_shadow_effect)

        # Добавление элементов на сцену
        self.addItem(ellipse_parent)

class View(QGraphicsView):
    def __init__(self, scene):
        super(View, self).__init__(scene)
        self.setRenderHints(QPainter.Antialiasing)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)

if __name__ == "__main__":
    app = QApplication([])

    scene = Scene()
    view = View(scene)
    view.show()

    app.exec_()

在此处输入图片描述

python
  • 1 个回答
  • 29 Views
Martin Hope
Павел
Asked: 2023-01-31 05:21:34 +0000 UTC

pyweb 视图。如何将焦点切换到主程序窗口?

  • 5

使用pywebview在程序内部显示网页。我遇到了一个问题:当创建一个webview窗口时,主程序窗口变为inactive ,并且在 webview 窗口关闭后记住并复制它的操作(移动) 。 我试图通过stream启动,可能没有正确使用它。谁遇到过这个问题怎么解决?主窗口不被 webview 窗口挡住是必要的。最低代码如下。要工作,您需要安装:PyQt5、PyWebview。

(不要提供 PyQtWebEngine 的知名变体,它仅适用于 x64,并且在安装/卸载期间它会踢出正在工作的 PyQt5)。

from threading import Thread
import sys
import webview
from PyQt5 import QtWidgets
from PyQt5.Qt import *

class Window(QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        self.resize(400, 200)

        self.centralwidget = QtWidgets.QWidget()
        self.setCentralWidget(self.centralwidget)

        self.label = QtWidgets.QLabel('<h1>Double Click Me!</h1>', alignment=Qt.AlignCenter)
        self.label.setStyleSheet('background-color: #5599ff;')

        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)

    def mouseDoubleClickEvent(self, event):
        thread_func()

def thread_func():
    webview.start(win2)

if __name__ == '__main__':
    win2 = webview.create_window('tst_win_2', html='text2', width=400, height=300)
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    thread = Thread(target=thread_func)
    thread.start()
    thread.join()

    sys.exit(app.exec_())
python-3.x
  • 1 个回答
  • 16 Views
Martin Hope
Павел
Asked: 2023-01-29 02:16:11 +0000 UTC

简历2。麻木的。如何使用蒙版剪切掉部分图像?

  • 5

有一个 RGBA 图像img_1转换为维度为 (100, 200, 4) 的 Numpy 数组。其中 100x200 是图像大小,4 是 RGBA 值。还有一个具有相同维度 (100, 200) 的灰色阴影(从 0 到 255)的掩码阵列掩码。如何通过值不等于 0 的蒙版坐标从img_1中选择 RGBA创建一个新的数组/图像?

# img_1 оригинальное изображение RGBA сконвертированное в Numpy
img_1 = numpy.array(img_1 )
img_null = numpy.zeros_like(img_1)  # создаем массив из нулей размером (100, 200, 4)
#... здесь фрагмент кода создающий маску с помощью контуров CV2
mask = numpy.array(mask) # маска/массив размерность (100, 200) значения 0-255
out = numpy.where(mask != 0, img_1, img_null) # не работает, из-за несоответствия размерностей
python
  • 1 个回答
  • 18 Views
Martin Hope
Павел
Asked: 2022-11-28 08:17:20 +0000 UTC

Python。逐行读取变量,是否有 readline 的类似物?

  • 6

该程序包含一个大型函数,可以从文本文件中逐行读取数据并根据自己的算法对其进行处理。

with open(FilePath, "r") as file:
    my_var1 = 'NotEnd'
    while my_var1 != ''
        my_var1 = file.readline().rstrip()
        # дальше алгоритм обработки my_var1
    print ('Ok')

需要复制相同的功能,但处理的数据不是来自文件,而是来自变量。readline的一个特性,读取文件中的一行并记住位置。readline的新读取将从新行开始。是否有可能以类似的方式处理包含多行文本的变量?没有申请splitlines()和清单?您想要得到的结果的假设示例:

STR_VAR = 'Многострочная\nпеременная\nстроки из которой\nбудут обрабатываться\n'
my_var1 = 'NotEnd'
while my_var1 != ''
    my_var1 = STR_VAR.readline().rstrip()
    # дальше алгоритм обработки my_var1
print ('Ok')
python
  • 2 个回答
  • 45 Views
Martin Hope
Павел
Asked: 2022-07-28 22:52:13 +0000 UTC

日志记录模块。跟踪未写入日志

  • 1

我使用日志记录模块将调试信息写入日志文件。

我在线上创建了一个错误26。

from sys import argv, exit
import logging
from PyQt5.QtWidgets import QApplication, QMainWindow

class Window(QMainWindow):
    def __init__(self):
        super(Window, self).__init__()

    def InitWindow(self):
        self.setGeometry(0, 0, 400, 300)
        self.setMouseTracking(True)

    def mousePressEvent(self, a0):
        #a = 5 / 0
        pass

if __name__ == '__main__':
    log_format = '%(asctime)s %(filename)s: %(message)s'
    logging.basicConfig(filename="tst_logfile.log", format=log_format,
                        datefmt='%Y-%m-%d %H:%M:%S', level='DEBUG')
    try:
        app = QApplication(argv)
        window = Window()
        window.show()
        # create an error
        a = 5 / 0

    except Exception as e:
        logging.debug(e, exc_info=True)

    exit(app.exec_())

一切正常,日志已写入。
并且该应用程序继续工作(并且应该飞出)。

2022-05-28 17:32:27 tst.py: division by zero
Traceback (most recent call last):
  File "C:\Users\Tom\PycharmProjects\pythonProject2\tst.py", line 26, in <module>
    a = 5 / 0
ZeroDivisionError: division by zero

但是一旦将错误移至事件mousePressEvent(第 14 行),跟踪就不会写入文件。尽管发生错误并且应用程序终止。

from sys import argv, exit
import logging
from PyQt5.QtWidgets import QApplication, QMainWindow

class Window(QMainWindow):
    def __init__(self):
        super(Window, self).__init__()

    def InitWindow(self):
        self.setGeometry(0, 0, 400, 300)
        self.setMouseTracking(True)

    def mousePressEvent(self, a0):
        a = 5 / 0
        #pass

if __name__ == '__main__':
    log_format = '%(asctime)s %(filename)s: %(message)s'
    logging.basicConfig(filename="tst_logfile.log", format=log_format,
                        datefmt='%Y-%m-%d %H:%M:%S', level='DEBUG')
    try:
        app = QApplication(argv)
        window = Window()
        window.show()
        # create an error
        #a = 5 / 0

    except Exception as e:
        logging.debug(e, exc_info=True)

    exit(app.exec_())

我究竟做错了什么?
如何确保记录所有应用程序错误?

python pyqt5
  • 1 个回答
  • 41 Views
Martin Hope
Павел
Asked: 2022-03-26 02:49:14 +0000 UTC

PyQt5。QListView 图像文件管理器。如何用png图像缩略图替换图标?

  • 1

用模型创建了一个类QFileSystemModel。问题是应该显示缩略图而不是图标(如在常规 Windows 文件管理器中)。

class MyFileManager(QListView):
    def __init__(self):
        super().__init__()
        self.mdl = QFileSystemModel()
        self.mdl.setRootPath(QDir.rootPath())
        self.setModel(self.mdl)

        self.setWindowTitle('менеджер файлов')
        self.setRootIndex(self.mdl.index(QDir.currentPath()))
        self.setAcceptDrops(True)

        self.setDropIndicatorShown(True)

        self.setDragEnabled(True)
        self.setViewMode(QListView.IconMode)
        self.setMovement(QListView.Free)
        self.setGridSize(QSize(100, 100))
        self.setIconSize(QSize(80, 80))

我试图创建一个额外的类,它的意思是将图标更改为缩影。但随后机会就消失了Drag & Drop。

class MyListModel(QAbstractListModel):
    def __init__(self, datain, parent=None, *args):
        """ datain: a list where each item is a row
        """
        QAbstractListModel.__init__(self, parent, *args)
        self.listdata = datain

    def rowCount(self, parent=QModelIndex()):
        return len(self.listdata)

    def data(self, index, role):
        if index.isValid() and role == Qt.DecorationRole:
            return QIcon(QPixmap(self.listdata[index.row()]))
        if index.isValid() and role == Qt.DisplayRole:
            return QVariant(path.splitext(path.split(self.listdata[index.row()])[-1])[0])
        else:
            return QVariant()

可以做些什么来保存拖放并用缩略图替换图标?最好带模型QFileSystemModel。

python
  • 2 个回答
  • 10 Views
Martin Hope
Павел
Asked: 2021-12-12 19:48:18 +0000 UTC

QFileDialog 不按扩展名过滤文件

  • 1

有一个用于上传文件的模板。我需要上传图片,并且只有扩展名.png。
因此,有必要在对话框中仅显示此类文件,并且остальные - скрывать.

告诉我我写错了什么?

写了代码:

imagePathTuple =

 QFileDialog.getOpenFileName(
        None, 
    'Выбрать изображение', 
    '*', 
    "Image files (*.png)"
)

最后,它似乎是按扩展名过滤的"Image files (*.png)",但在窗口中,文件夹中的所有文件都是一样的。

显示所有文件,但只需要 png

python
  • 1 个回答
  • 10 Views
Martin Hope
Павел
Asked: 2021-12-11 14:34:59 +0000 UTC

PyQT5、QToolbar、Qaction。如何更改按钮单击时的图标?

  • 0

程序窗口有一个QToolbar带有按钮的工具栏QAction。它们以普通按钮的模式工作,而不是 on / off action.setCheckable(False)。

问题:是否有可能以及如何使其在按下按钮时图标变为另一个图标,并且在释放时默认恢复?以此类推press / release。

在切换模式下,action.setCheckable(True)这是通过分配图标来实现的:

icon.addFile("my_icon_off.png", QSize(), QIcon.Normal, QIcon.Off)
icon.addFile("my_icon_on.png", QSize(), QIcon.Normal, QIcon.On)

但是如何在按钮模式下做到这一点 - 我想不通

python
  • 1 个回答
  • 10 Views
Martin Hope
Павел
Asked: 2021-12-05 22:40:02 +0000 UTC

PyQT5。如何将动态创建的 QGraphicsPixmapItem 的信号传递给 QTableWidget?

  • 0

问题的本质:

  • 有一个主模块“interface.py”,它被启动并内置了窗口设计。
  • 还有一个“classes.py”模块,其中包含对象类和重新定义的函数。

这个类中有一些class MyOBJ(QGraphicsPixmapItem)对象在程序执行期间动态创建,每个新对象都会响应鼠标事件。自然地,它们在里面QGraphicsScene并且QgraphicsView。

来自classes.py的短代码:

class MyOBJ(QGraphicsPixmapItem):
    def __init__(self):
        super().__init__()
        self.setPixmap(QPixmap('dot.png'))
    def mousePressEvent(self, event):
        pass  # тут всякие разные конструкции
    super().mousePressEvent(event)

有一个class MyTableFrames(QTableWidget)从中创建的类对象位于内部QDockWidget,它又是QMainWindow“interface.py”模块中的主窗口小部件

来自classes.py的短代码:

class MyTableFrames(QTableWidget):
    def __init__(self):
        super().__init__()
        self.setColumnCount(7500)
        self.horizontalHeader().setDefaultSectionSize(20)
        self.horizontalHeader().setMinimumSectionSize(20)
        self.setRowCount(1)
        self.setSelectionMode(QAbstractItemView.SingleSelection)
        self.setRowHeight(0, 36)
        self.setEditTriggers(QTableWidget.NoEditTriggers)

    def mousePressEvent(self, event):
        print('Ok')
        super().mousePressEvent(event)

    def mouseReleaseEvent(self, event):
        if event.button() == 1:
            self.setItem(self.currentRow(), self.currentColumn(), QTableWidgetItem("•"))
        super().mouseReleaseEvent(event)

问题是我不明白如何从 to 发送鼠标事件MyOBJ,MyTableFrames所以当你点击MyOBJ表格中的给定单元格MyTableFrames(让它为 1)时,"•"会打印一个点或只是一些字符。

python
  • 2 个回答
  • 10 Views
Martin Hope
Павел
Asked: 2020-02-17 19:15:57 +0000 UTC

JS 去除部分 HTML 代码

  • 0

如何在页面中找到代码并去除相同的代码片段?准确地说,这里是片段:

<span style="COLOR:GRAY; TEXT-DECORATION:NONE;">опубликовано:</span>

不仅不是块的内容,而是完全删除块。

javascript
  • 4 个回答
  • 10 Views
Martin Hope
Павел
Asked: 2020-01-25 04:37:57 +0000 UTC

是否可以使用 html 组织指向下一个标签的链接?(一个 href = ...???)

  • 2

我找不到答案:是否可以使用 HTML 在代码中组织指向下一个标签的链接?

例如,到目前为止有一个内容未知的链接和几个具有 ID 的块。需要在 <a href = "..."> 中写入什么,以便过渡到代码中的下一个标签(取决于当前位置)。

如果不可能,如何做到这一点?

javascript
  • 3 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5