2011-01-11 94 views
0

我创建了一个类,其中包含一个方法来在屏幕上的任意位置放置一个窗口。我正在使用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方法。

+0

您的缩进似乎被打破。 – 2011-01-11 18:08:23

回答

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,而不是控制外部窗口。我可能错了,因为我只读过足够的答案。

+0

在这种情况下,我们在哪里调整窗口位置?它应该是self.wName.move ...? – RKh 2011-01-11 18:21:03