Передача имени окна в качестве параметра в класс - PullRequest
0 голосов
/ 11 января 2011

Я создал класс, содержащий метод для позиционирования окна в любом месте экрана.Я использую PyQt4 для программирования GUI.Я написал следующий класс:

from PyQt4 import QtGui

class setWindowPosition:
    def __init__(self, xCoord, yCoord, windowName, parent = None):
        self.x = xCoord
        self.y = yCoord
        self.wName = windowName;

    def AdjustWindow(self):
        screen = QtGui.QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)

Этот код нуждается в исправлении.Любой файл, который импортирует этот класс, передаст этому классу три параметра: desired_X_Position, desired_Y_position и его собственное имя.Метод AdjustWindow должен принять эти три параметра и расположить окно вызова в соответствии с желаемыми координатами.

В приведенном выше коде, хотя я передал параметры, но не следую, как изменить метод AdjustWindow.

1 Ответ

1 голос
/ 11 января 2011

Не совсем понятно, что вы пытаетесь задать, но вы получаете доступ к значениям в методе так же, как вы устанавливаете их в конструкторе.

from PyQt4 import QtGui

class setWindowPosition:
    def __init__(self, xCoord, yCoord, windowName, parent = None):
        self.x = xCoord
        self.y = yCoord
        self.wName = windowName;

    def AdjustWindow(self):
        print self.x, self.y, self.wName //See Here
        //now use them how you want
        screen = QtGui.QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)

EDIT : Я нашел эту страницу , которая, кажется, откуда вы взяли код. Ваш класс не наследуется от QtGui.QWidget, поэтому вызовы geometry() и move() не будут выполнены. Как только вы это сделаете, похоже, что код будет:

def AdjustWindow(self):
  self.move(self.x, self.y)

Однако вам все еще нужно выяснить, каким образом ваш класс должен управлять окном с помощью windowName. Кажется, этот пакет предназначен для создания графических интерфейсов, а не для управления внешними окнами. Я могу ошибаться, потому что я только прочитал достаточно, чтобы ответить на этот вопрос.

...