/ / Wie rufe ich eine Methode auf? - Python, Benutzeroberfläche, Methoden

Wie rufe ich eine Methode auf? - Python, Benutzeroberfläche, Methoden

Ich bin mir nicht sicher, wie man eine allgemeine Dienstprogrammdatei erstellt und die darin enthaltenen Methoden verwendet.

Hier ist eine Beispieldienstprogrammdatei, die ein Fenster auf dem Bildschirm zentriert:

class center():
fg = self.frameGeometry()
cs = QtGui.QDesktopWidget().availableGeometry().center()
fg.moveCenter(cs)
self.move(fg.topLeft())

Hier ist eine Beispiel-Benutzeroberfläche:

import os, sys
import puppetUtils
from PyQt4 import QtCore, QtGui


class puppetUI(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)

self.setWindowTitle("Puppet")
self.setObjectName("PuppetMainWindow")
self.resize(1280, 720)

puppetUtils.center(self)

self.show()



app = QtGui.QApplication(sys.argv)
window = puppetUI()
sys.exit(app.exec_())

Was ist der richtige Weg, um PuppetUtils aufzurufen.Center? Ich habe herumgeloggert, viele Möglichkeiten ausprobiert, aber es funktioniert einfach nicht. Dies ist ein Beispiel - eines von vielen, die ich verwendet habe, um meine Anwendungsfunktion ohne Kopieren / Einfügen in verschiedenen Klassen usw. zu verwenden

Anderer Code, den ich implementieren muss:

def mouseMoveEvent(self, event):
#create the mouse "Grab & Move"
if self.moving: self.move(event.globalPos()-self.offset)

def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.moving = True; self.offset = event.pos()


def mouseReleaseEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.moving = False

Antworten:

2 für die Antwort № 1

Ändern Sie zuerst von

class center():

zu

def center(var):

weil Sie tatsächlich versuchen, eine Utility-Funktion zu definieren, sollte es also def Anstatt von class.

Dann in der center Funktion, ändern self zu var (oder wie auch immer Sie den Funktionsparameter benennen möchten)