Я пробовал различные обходные пути об этой проблеме и пытался исправить код в соответствии с другими примерами, но в конечном итоге я не смог создать работоспособный код. Хотя у меня есть представление о том, почему это не удается, мне не хватает навыков для создания обходного пути об этой ошибке. Не могли бы вы помочь мне с тем, чтобы этот код работал?Python GUI QCore.Aplication error
Проблема:
Тогда я нажимаю «» Duomenų apdorojimas «» и продолжить нажимать «» Pavaizduoti signalą «» я получаю сообщение об ошибке сказав: QCoreApplication :: Exec: Петля событие уже запущен. Я пробовал различные обходные пути об этом, и некоторые устаревшие коды остались внутри моих функций. Я буду убирать и оптимизировать свой код позже, мне просто нужно знать, как правильно работать с графическим интерфейсом, чтобы избежать этой проблемы. При необходимости я вышлю вам всю программу с txt-файлами, но эта часть важна, и здесь возникает проблема.
import os
import os.path
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
from tkinter import *
import tkinter.messagebox
import sys
from functools import partial
import matplotlib.pyplot as p
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50, 50, 500, 300)
self.setWindowTitle("")
self.setWindowIcon(QtGui.QIcon('pythonlogo.png'))
openFile = QtGui.QAction("&Atverkite duomenų failą", self)
openFile.setShortcut("Ctrl+Q")
openFile.setStatusTip('Duomenų failas')
openFile.triggered.connect(self.file_open)
extractAction = QtGui.QAction("&Duomenys iš Arduino", self)
extractAction.setShortcut("Ctrl+W")
extractAction.setStatusTip('Prijunkite iš Arduino ateinančius duomenis')
extractAction.triggered.connect(self.upload_usb)
saveFile = QtGui.QAction("&Įšsaugoti failą", self)
saveFile.setShortcut("Ctrl+E")
saveFile.setStatusTip('Nurodykite failo direktoriją bei pavadinimą')
saveFile.triggered.connect(self.file_save)
quitFile = QtGui.QAction("&Išeiti", self)
quitFile.setShortcut("Ctrl+R")
quitFile.setStatusTip('Programa bus uždaryta')
quitFile.triggered.connect(self.close_application)
openEditor = QtGui.QAction("&Skaitytuvas", self)
openEditor.setShortcut("Ctrl+T")
openEditor.setStatusTip('Skaitytuvas visados įjungtas')
openEditor.triggered.connect(self.editor)
additionalData = QtGui.QAction("&Paciento duomenys", self)
additionalData.setShortcut("Ctrl+A")
additionalData.setStatusTip('Įveskite paciento amžiaus grupę')
additionalData.triggered.connect(self.group)
dataProcessing = QtGui.QAction("&Filtruoti signalą", self)
dataProcessing.setShortcut("Ctrl+S")
dataProcessing.setStatusTip('Bus atliekami signalo apdorojimo procesai')
dataProcessing.triggered.connect(self.editor)
showGraph = QtGui.QAction("&Pavaizduoti signalą", self)
showGraph.setShortcut("Ctrl+D")
showGraph.setStatusTip('Bus atvaizduotas šiuo metu turimas signalas')
showGraph.triggered.connect(self.close_application)
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('&Progamos funkcijos')
fileMenu.addAction(openFile)
fileMenu.addAction(extractAction)
fileMenu.addAction(saveFile)
fileMenu.addAction(quitFile)
resultsMenu = mainMenu.addMenu("&Duomenų apdorojimas")
resultsMenu.addAction(dataProcessing)
resultsMenu.addAction(showGraph)
editorMenu = mainMenu.addMenu("&Programos nustatymai")
editorMenu.addAction(openEditor)
editorMenu.addAction(additionalData)
self.statusBar()
self.home()
def openFile(self,n):
print(n)
def home(self):
self.show()
def close_application(self):
graphics()
sys.exit()
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
Что делает 'graphics()' do? –
Графика() - это функция, которая открывает отдельное окно графика. Это точка проблемы, так как здесь происходит сбой программы, потому что я пытаюсь открыть второй цикл QCore.Application или что-то в этом роде. Хммм, если решение проблемы непонятно, я думаю, что я просто опубликую весь код вместо этого, чтобы вы могли компилировать. –
Сообщение об ошибке кажется довольно четким. Где-то ваш код снова вызывает 'QApplication.exec _()' (обратите внимание, что первый вызов находится в функции 'run'). Предположительно это происходит в 'graphics()'. Не зная, что такое «графика», помощь не может быть предоставлена, кроме как побудить вас больше узнать о экземплярах «QApplication» и реорганизовать ваше приложение, чтобы вы не пытались сделать 2 и запустить 2 цикла событий. –