1
Visual Studio 2010에서 QT 통합 디자이너를 사용하여 간단한 GUI를 디자인하고 있습니다. 여기에 내가하고 싶은 것이 있습니다 : 업데이트 버튼을 클릭하여 표시되는 이미지를 변경하고 싶습니다. 업데이트를 눌러 신호를 트리거하고 텍스트 필드의 슬롯을 사용하여 지울 수 있는지 확인했습니다. 그러나 이미지를 변경할 수없는 것 여기 QT : QPixmap을 사용하여 QLabel로 이미지 업데이트
는 관련 코드 (GUI.cpp)입니다 .... 신호/슬롯 방식을 사용하여 표시 :void GUI::changeImage()
{
ui.Image->updatesEnabled();
ui.Image->setPixmap(QPixmap("D:\\Documents\ and\ Settings\\Image.jpg"));
ui.Image->update();
}
GUI::GUI(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
connect(ui.updateButton, SIGNAL(clicked()), ui.textField, SLOT (clear()));
connect(ui.updateButton, SIGNAL(clicked()), ui.Image, SLOT (changeImage()));
}
GUI::~GUI()
{
}
내가 뭔가 잘못하고 있습니까?
편집 : gui.h
#include <QtGui/QMainWindow>
#include "ui_gui.h"
class GUI : public QMainWindow
{
Q_OBJECT
public:
GUI(QWidget *parent = 0, Qt::WFlags flags = 0);
~GUI();
private:
Ui::GUIClass ui;
void changeImage() ;
};
감사합니다. 나는 그것을 시도했지만 아무런 차이가없는 것으로 보인다. Image가 기본적으로 QLabel임을 분명히해야합니다. 필자는 처음에는 이미지를 PixMap을 사용하여 이미지에 설정하는 데 디자이너를 사용했습니다. 이제 코드를 사용하여 이미지를 전환합니다. 하지만 그것은 이미지를 업데이트하지 않고 QT Designer -> pixmap -> original image 필드를 사용하여 지정한 초기 값을 유지합니다 ... – c0d3rz
내 코드에 중단 점을 넣으면 changeImage 함수가 호출되지 않습니다 updateButton이 눌려졌습니다 ... 내가 어떻게 든 SLOTS를 잘못 사용하고있는 것 같군요? – c0d3rz
@ c0d3rz GUI 클래스 정의에 Q_OBJECT 매크로를 넣었습니까? – alexisdm