Я новичок в использовании pyQT для графических интерфейсов, но у меня есть опыт работы с Java в течение нескольких лет.
У меня есть QComboBox для выбора опции, а затем кнопка отправки, чтобы начать вычисления для графика, учитывая выбор. Все работает отлично, за исключением случаев, когда matplotlib показывает график, выпадающий список из QComboBox сохраняется отдельно от окна выбора или окна графика. Он даже занимает верхний слой моего экрана, поэтому я не могу держать график открытым, работая в других окнах. Будучи совершенно новым для pyQT, я не уверен, с чего начать с исправления проблемы.
Я использую PyQt5 от Anaconda версии 5.9.2 И моя ОС - macOS Mojave, 10.14.6
Вот версия моего кода, которая при запуске выдает ошибку:
from PyQt5.QtWidgets import *
import numpy as np
import matplotlib.pyplot as plt
app = QApplication([])
window = QWidget()
layout = QGridLayout()
layout.setSpacing(10)
label = QLabel("Choose an option")
layout.addWidget(label, 0, 0, 1, 3)
button = QPushButton("Submit")
layout.addWidget(button, 1, 1)
ifo_choices = { 'x','x^2','e^x','sin(x)' }
choose = QComboBox()
choose.addItems(ifo_choices)
layout.addWidget(choose, 2, 1)
def submit_pref():
pref = choose.currentText()
freq = np.linspace(0,10,100)
if(pref == 'x'):
y = freq
elif(pref == 'x^2'):
y = freq**2
elif(pref == 'e^x'):
y = np.e**freq
elif(pref == 'sin(x)'):
y = np.sin(freq)
plt.plot(freq, y)
plt.show()
button.clicked.connect(submit_pref)
window.setLayout(layout)
window.show()
app.exec_()
Вот как выглядит проблема на моем компьютере:
Спасибо за помощь.