Arhn - архитектура программирования

Есть ли способ остановить QWindowsNativeFileDialog::OnSelectionChange(Qurl) от выхода из командной строки?

Я вижу, что виджет диалогового окна файла в PyQt5 выводит сообщение QWindowsNativeFileDialogBase::onSelectionChange (QUrl...) в командную строку каждый раз, когда я взаимодействую с ним. Есть ли способ предотвратить это?


Текущий выход:

Вы можете видеть, что когда я нажимаю «codetesting.py», в командной строке появляется сообщение.

введите здесь описание изображения


Пример выхода:

QWindowsNativeFileDialogBase::onSelectionChange (QUrl("file:///C:/Users/user/Documents/WaferMapViewerProject/src/main/python/codetesting.py")) 1

Запускаемый код:

Когда вы запускаете этот код, появляется окно с кнопкой посередине. Диалоговое окно файла откроется, когда вы щелкнете по нему.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFileDialog
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 button - pythonspot.com'
        self.left = 50
        self.top = 50
        self.width = 320
        self.height = 200
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        button = QPushButton('PyQt5 button', self)
        button.setToolTip('This is an example button')
        button.move(100, 70)
        button.clicked.connect(self.on_click)

        self.show()

    @pyqtSlot()
    def on_click(self):
        print('PyQt5 button click')
        fname = QFileDialog.getOpenFileName()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

11.06.2020

  • Я вижу сообщения в командной строке, когда запускаю много программ, и я не трачу время на попытки их удалить. Обычно программы с графическим интерфейсом выполняются без командной строки, и никто не видит эти сообщения. 12.06.2020
  • @furas Не повлияет ли это на эффективность программы, если пользователь попытается ввести много файлов одновременно? 12.06.2020
  • это всего лишь одно маленькое сообщение. Это занимает всего несколько миллисекунд. Это не может замедлить программу. Вам нужно гораздо больше времени, чтобы переместить мышь и нажать кнопку или имя файла. 12.06.2020

Ответы:


1

Вы можете отключить ведение журнала, используя QLoggingCategory:

from PyQt5.QtCore import QLoggingCategory

QLoggingCategory.setFilterRules('qt.qpa.dialogs.debug=false')

Or

import os
# ...

if __name__ == '__main__':

    os.environ["QT_LOGGING_RULES"] = "*.debug=false"

    app = QApplication(sys.argv)

    # ...
11.06.2020
  • Вместо этого я получаю ошибку from PyQt5.QtCore import QCoreApplication, QRect, QSize, Qt, QRectF, QLoggingCategory....ImportError: cannot import name 'QLoggingCategory'. Я не уверен, почему это происходит. 12.06.2020
  • @burntchowmein Класс QLoggingCategory представляет категорию или «область» в инфраструктуре ведения журналов. Этот класс был представлен в Qt 5.2. 12.06.2020
  • @burntchowmein Какую версию pyqt5 вы используете? Как вы установили pyqt5? 12.06.2020
  • мне кажется 5.13 12.06.2020
  • @burntchowmein Как вы установили PyQt5? Попробуйте обновить: python -m pip install pyqt5 --upgrade 12.06.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..