将窗口名称作为参数传递给类

时间:2011-01-11 18:06:04

标签: python pyqt4

我创建了一个类,其中包含一个将窗口定位在屏幕上任何位置的方法。我正在使用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_Positiondesired_Y_position和它自己的名称。方法AdjustWindow应该接受这三个参数并将调用窗口定位到所需的坐标。

在上面的代码中,虽然我已经传递了参数,但没有按照如何修改AdjustWindow方法。

1 个答案:

答案 0 :(得分:1)

您要提出的问题并不完全清楚,但是,您可以像在构造函数中设置它们一样访问方法中的值。

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)

修改: 我发现this page似乎是你抓住代码的地方。 您的课程不会继承QtGui.QWidget,因此对geometry()move()的调用将失败。一旦你这样做,它看起来就像代码那样:

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

但是,您仍然需要弄清楚如何将您的类作为使用windowName控制窗口的类。看起来这个包是用于制作GUI而不是控制外部窗口。我可能错了,因为我只读了足够的答案。