2015-12-08 66 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)'就可以正常工作。 –