Я хочу распечатать функции, которые запускают окно qt по порядку. Экран «HELLO» должен появиться перед пометкой карты nfc. Если я отмечу nfc, должен появиться экран «NFC». После пометки nfc должен появиться экран «ВЫБРАТЬ». Но теперь появляются сразу три экрана.
import sys # из потокового таймера импорта
from PyQt5 import QtWidgets
from PyQt5 import uic
from PyQt5.QtCore import pyqtSlot
#import Dgym_exericse
#import Dgym_select_m
#import Dgym_select_e
#import cv2
import resource_rc
import serial
from socket import *
import time
class NFC(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent)
self.ui = uic.loadUi("/home/dgym/PycharmProjects/mr_2019/NFC.ui", self)
self.ui.show()
res = self.serialtest()
if res:
self.Open_HELLO()
self.mw_HELLO.ui.label_4.setText(res)
self.Open_CHOOSE()
def Open_HELLO(self):
self.mw_HELLO = HELLO()
self.mw_HELLO.show()
def Open_CHOOSE(self):
self.mw_CHOOSE = CHOOSE()
self.mw_CHOOSE.show()
def serialtest(self):
HOST = "192.168.0.10"
PORT = 8702
c = socket(AF_INET, SOCK_STREAM)
c.connect((HOST, PORT))
ser = serial.Serial(port="/dev/ttyUSB3", baudrate=9600)
if ser.readable():
res = ser.readline()
a = res.decode("utf-8")[: len(res) - 2]
c.send(a.encode())
u = str(c.recv(8000)).decode("utf-8") # Wait for data
print(u + "1")
c.close()
return u
class HELLO(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent)
self.ui = uic.loadUi("/home/dgym/PycharmProjects/mr_2019/HELLO.ui", self)
def Open_CHOOSE(self):
self.mw_CHOOSE = CHOOSE()
self.mw_CHOOSE.show()
class CHOOSE(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent)
self.ui = uic.loadUi("/home/dgym/PycharmProjects/mr_2019/CHOOSE.ui", self)
self.ui.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mw_NFC = NFC()
mw_NFC.show()
sys.exit(app.exec_())