2014-07-21 1 views
0

솔루션 :
내게 : QtDesigner의 "자리 표시 자"기능을 통해 아이콘에 단추를 추가하는 파일입니다. 다른 폴더에있는 Main-programm는 해당 폴더에서 "가져온"파일의 폴더가 아닌 아이콘을 검색합니다.Qt 디자이너의 자리 표시자를 사용하여 GUI에서 Qpushbutton 아이콘을 어떻게 설정합니까?

dirpath = os.path.dirname(os.path.abspath(__file__)) 
icon1_path = os.path.join(dirpath,"arrow_down.ico") 
icon = QtGui.QPixmap(icon1_path) 

내가 대신 텍스트의 아이콘으로 QPushButton을을 만들려면 :

icon = QtGui.QIcon() 
icon.addPixmap(QtGui.QPixmap("arrow_down.png")) 
self.ui.pb_down.setIcon(icon) 

을하지만이 작동하지 않습니다 그래서 당신은 아이콘의 경로를 추가해야합니다. 작동하지 않습니다.

self.ui.pb_down.setIcon(QtGui.QIcon("arrow_down.png")) 

Theres is no 오류 메시지는 아이콘이 나타나지 않습니다.

Qt 디자이너를 통해 아이콘을 추가하면 아이콘이 Qt Desiger에 표시되지만 programm를 실행하면 아이콘이 다시 사라집니다. 아무도 무슨 일이 일어나는지 알아? 파이썬 2.7 및 Windows 7

편집하여

: @ 크리스 아웅 코드를 사용 , 나는 아이콘이있는 버튼을 얻을.

button = QtGui.QPushButton() 
    self.setCentralWidget(button) 
    icon = QtGui.QIcon() 
    icon.addPixmap(QtGui.QPixmap("arrow_down.ico")) 
    print button.icon().isNull() #Returns true if the icon is empty; otherwise returns false. 
    #output = False 

하지만 내 GUI에서이 코드를 정확하게 사용하면 아이콘을 추가하지 않습니다.

icon = QtGui.QIcon() 
    icon.addPixmap(QtGui.QPixmap("arrow_down.ico")) 
    self.ui.pb_down.setIcon(icon) 
    print self.ui.pb_down.icon().isNull() 
    # output = True 

어디에 문제가 있는지 알 수 없습니다.

답변

2

나는를 사용하여 아무 문제없이 아이콘과 QPushButton을 만들 수 있었다 : 당신이 사용하는 경우로

Icon = QtGui.QIcon() 
    Icon.addPixmap(QtGui.QPixmap(_fromUtf8("SOME FILE")), QtGui.QIcon.Normal, QtGui.QIcon.Off) 
    button.setIcon(Icon) 
    button.setIconSize(QtCore.QSize(width, height)) 

, 당신은 또한 당신의 모듈의 상단에있는 "_fromUtf8"를 정의해야합니다 다음 코드는 내가 사용한 코드입니다.

from PyQt4 import QtGui,QtCore 
import sys 

class MainWindow(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     QtGui.QMainWindow.__init__(self, parent) 
     button = QtGui.QPushButton("TEST") 
     self.setCentralWidget(button) 
     icon = QtGui.QIcon() 
     icon.addPixmap(QtGui.QPixmap("add.png")) 
     button.setIcon(icon) 

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    main = MainWindow() 
    main.show() 
    app.exec_() 

난 당신이 다시 png 이미지를 확인 (또는 다른 png 이미지와 함께 시도)하는 것이 좋습니다. 나는 그것이 문제를 해결할 것이라고 완전히 확신하지는 않지만 이전에 비슷한 문제가 있었고 다른 .png 이미지를 사용하면 문제가 해결되는 것 같습니다.

+0

편집보기 ....... – Hubschr

0

해당 버튼에 텍스트가 렌더링 되었습니까? 아이콘 크기 setIconSize()로 시작해보십시오. 먼저 pixmap의 rect로 설정할 수 있습니다.

+0

이미 시도했지만 아이콘 및 푸시 버튼의 크기를 변경하면 도움이되지 않습니다. – Hubschr

0

이것은 나를 위해 작동하며 pyuic4 도구로 .ui 파일을 .py로 변환하면 pyqt에 의해 자동 생성됩니다.

try: 
    _fromUtf8 = QtCore.QString.fromUtf8 
except AttributeError: 
    _fromUtf8 = lambda s: s 
+0

이미 Qtdesigner를 사용해 보았습니다. Qtdesigner 자체는 아이콘을 표시하지만 프로그램을 실행하면 아이콘이 표시되지 않습니다. – Hubschr