2015-12-08 70 views
0

我在Python中编写了一个小程序,现在我有三个并排的按钮,我可以在每个按钮上放一个图标。如何只显示图标而不是带图标的按钮?我希望你明白我的意思。我只想移除我的按钮并仅显示图标。如何在Python中使用PyQt4并排放置三个图标?

这里是我的代码:

import sys 
from PyQt4 import QtGui 

class Example(QtGui.QMainWindow): 
def __init__(self): 
    super(Example, self).__init__() 
    self.initUI() 

def initUI(self): 
    self.statusBar().showMessage('Start the game!') 
    self.setGeometry(300, 300, 250, 150) 
    panel = QtGui.QWidget() 
    grid = QtGui.QGridLayout() 
    p1 = QtGui.QPushButton("") 
    p1.setIcon(QtGui.QIcon('image1.jpg')) 
    p2 = QtGui.QPushButton("") 
    p2.setIcon(QtGui.QIcon('image2.jpg')) 
    p3 = QtGui.QPushButton("") 
    p3.setIcon(QtGui.QIcon('image3.jpg')) 

    p1.setMaximumHeight(1000) 
    p2.setMaximumHeight(1000) 
    p3.setMaximumHeight(1000) 

    grid.addWidget(p1,0,0) 
    grid.addWidget(p2,0,1) 
    grid.addWidget(p3,0,2) 

    panel.setLayout(grid) 
    self.setCentralWidget(panel) 
    self.setWindowTitle('MyGame')  
    self.show() 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
main() 

回答

0

使用.setGeometry方法上的QLabel(lbl

如果你想图像出现在最右边,你可以一个空间项目添加到您的HBoxLayout是这样的:

lbl.setGeometry(0,0,100,100) 
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) 
hbox.addItem(spacerItem) 
+0

你可以在我的示例代码中用一个图标使用它吗?我试图使用该功能,但它不会改变我的图标的位置。 –

+0

lbl.move也不适用于我。 –

+0

由于.setGeometry命令将使用前两个值移动窗口小部件中的图片,因此我不确定您要使用lbl.move命令完成的操作。我的代码在你的'.setPixmap'行下面加上'lbl.setGeometry(0,0,100,100)'就可以正常工作。 –

相关问题