Πώς να ανοίξετε ένα παράθυρο QDialog με μια λειτουργία που περνά args;

ψήφοι
0

Είμαι σε μεγάλο πρόβλημα, δεν μπορώ να καταλάβω πώς να ανοίξει το παράθυρό μου «PlotWindow» με μου λειτουργία «OpendPlotWindow». Είμαι νέος στο PyQt γι 'αυτό είναι μια χαζή ερώτηση, αλλά εγώ πραγματικά δεν καταλαβαίνω τι συμβαίνει στον κώδικά μου

PlotWindow:

class PlotWindoW(QDialog):
    def __init__(self,x,y, parent=None): 
        super(Window, self).__init__(parent)
        self.figure = plt.figure()
        self.canvas = FigureCanvas(self.figure)
        self.toolbar = NavigationToolbar(self.canvas, self)
        self.plot(x,y)
        layout = QVBoxLayout()
        layout.addWidget(self.toolbar)
        layout.addWidget(self.canvas)
        self.setLayout(layout)
        self.show()
    def plot(self,x,y):
        self.figure.clear()
        ax = self.figure.add_subplot(111)
        ax.plot(x,y)
        self.canvas.draw()

PlotSetting:

class PlotSetting(QWidget):
    def __init__(self,fileNameFm,fileNameMesh,fileNameSmry,fileNameXY, parent=None):
        super(QWidget, self).__init__(parent)
        print(setting start)

        donnees.fileFm=fileNameFm
        donnees.fileMesh=fileNameMesh
        donnees.fileSmry=fileNameSmry
        donnees.fileXY=fileNameXY

        self.layout = QVBoxLayout(self)

        self.tabs = QTabWidget()
        self.tab1 = QWidget()   
        self.tabs.sizeHint() 

        self.tabs.addTab(self.tab1,Setting Mesh)

        LabelFm = QLabel(donnees.fileFm)
        LabelMesh = QLabel(donnees.fileMesh)

        btnNe=QPushButton(Choose Ne, self)
        btnNe.clicked.connect(self.getInteger)

        FmPlotBtn=QPushButton(Plot Mesh File, self)
        FmPlotBtn.clicked.connect(self.GetDataFm)

        self.tab1.layout = QVBoxLayout(self)
        self.tab1.layout.addWidget(LabelFm)
        self.tab1.layout.addWidget(LabelMesh)
        self.tab1.layout.addWidget(btnNe)
        self.tab1.layout.addWidget(FmPlotBtn)
        self.tab1.setLayout(self.tab1.layout)

        self.layout.addWidget(self.tabs)
        self.setLayout(self.layout)

    def getInteger(self):
        donnees.Ne, okPressed = QInputDialog.getInt(self, Get integer,Ne:, 66, 66, 98, 2)
        if okPressed:
            print(donnees.Ne)

    def GetDataFm(self):
        print('plot start') 
        data = {}
        data = Fm( donnees.fileFm , donnees.fileMesh )
        x,y=PloterFm(data,donnees.Ne)
        print(x[0],y[0])
        self.OpenPlotWindow(x,y)

    def OpenPlotWindow(self, x, y):
        print(OpenPlotWIndow is running)
        print(x[0],y[0])
        self.ThirdWindow = PlotWindoW(x,y)
        self.ThirdWindow.show()

Το πρόβλημα: όταν τρέχω τον κωδικό μου, πρόκειται για OpenPlotWindow που παίρνουν όλα τα στοιχεία που απαιτούνται, αλλά δεν τίθεται σε PlotWindow ...

Παρακαλώ μπορείτε να με βοηθήσετε?

Δημοσιεύθηκε 30/05/2018 στις 14:18
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Σύμφωνα με τα έγγραφα για το QPushButton«s σούπερ κλάση QAbstractButton, clickedπαίρνει ένα επιχείρημα, bool checked = false. Είναι πραγματικά αρκετά άχρηστο για QPushButton όσο έχω δει, αλλά παρ 'όλα αυτά, η λειτουργία σας πρέπει να λογοδοτήσει γι' αυτό. Δοκιμάστε αυτή τη γραμμή, αντί

def GetDataFm(self, clicked=False):
    ....
Απαντήθηκε 30/05/2018 στις 17:10
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more