2015-12-20 10 views
0

Я пробовал различные обходные пути об этой проблеме и пытался исправить код в соответствии с другими примерами, но в конечном итоге я не смог создать работоспособный код. Хотя у меня есть представление о том, почему это не удается, мне не хватает навыков для создания обходного пути об этой ошибке. Не могли бы вы помочь мне с тем, чтобы этот код работал?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() 
+0

Что делает 'graphics()' do? –

+0

Графика() - это функция, которая открывает отдельное окно графика. Это точка проблемы, так как здесь происходит сбой программы, потому что я пытаюсь открыть второй цикл QCore.Application или что-то в этом роде. Хммм, если решение проблемы непонятно, я думаю, что я просто опубликую весь код вместо этого, чтобы вы могли компилировать. –

+0

Сообщение об ошибке кажется довольно четким. Где-то ваш код снова вызывает 'QApplication.exec _()' (обратите внимание, что первый вызов находится в функции 'run'). Предположительно это происходит в 'graphics()'. Не зная, что такое «графика», помощь не может быть предоставлена, кроме как побудить вас больше узнать о экземплярах «QApplication» и реорганизовать ваше приложение, чтобы вы не пытались сделать 2 и запустить 2 цикла событий. –

ответ

0

Ну, оказывается, я пытался открыть полу-новую программу в графике(). Я узнал, как не создавать графический интерфейс. Спасибо, что помогли, но я нашел решение. В следующий раз я отправлю код в onedrive или что-то, чтобы люди могли получить всю программу с ее поддерживающими документами.

 Смежные вопросы

  • Нет связанных вопросов^_^