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)