2011-10-05 3 views
-1

왼쪽 버튼에 여러 개의 버튼이있는 UI를 만들고 각 버튼을 클릭하면 오른쪽에 다른 프레임이 나타납니다. 측면. 나는 그것을 보여 주거나 숨길 수있을만큼 성취했다. 그러나 나는 처음부터 숨길 수는 없지만, 이것을 어떻게 할 것인지 생각하고 있는가?QT 디자이너가 프레임 표시/숨기기 (또는 맨 위에 넣기)

다른 문제는 겹치는 것입니다. 어떤 프레임이 상단에 있는지를 바꿔야하지만 분명히 불가능합니다. 그렇다면 어떻게 프레임을 다른 프레임의 맨 위로 가져올 수 있습니까? 방법이 있습니까? 많은 radiobuttons의 선택을 취소 (바람직하지 않음에도 불구하고), 트릭을 할 것입니다.

나는 단지 QT Creator (이 경우에는 위젯을하고 있습니다.)를 사용하고 있습니다. 실제 코딩에 대해 설명하면 가장 쉽고 간단한 단계별로 설명해야합니다 ... 죄송합니다.

정말 고마워요!

+0

나는 혼란 스럽다. 코드에서 아무 작업도하지 않고 Qt Designer를 사용하여이 앱을 만드십니까? show/hide 등을 구현하기 위해 당신은 무엇을하고 있습니까? Qt Designer 내의 모든 신호/슬롯 설정은 어떻게됩니까? – jdi

+0

아니요, GUI를 작성하는 중입니다. 실제 프로그램이 이미 완료되었으며 작성자가 GUI 만 작성한다고 말한 것입니다. 그래, 지금까지 충분히 효과가있는 것 같습니다. –

답변

0

상단에 위젯을 가져 오는 슬롯이 있습니다. "레이즈"라고합니다. setShown 슬롯을 트리거하는 것처럼이 슬롯을 트리거 할 수 있습니다.

처음부터 보이지 않는 것으로 설정하는 것은 조금 까다 롭습니다. 당신이해야 할 일은 프레임이 생성 된 직후 프레임에 setShown (false)를 호출하는 것입니다. 일반적으로 우리는 코드에서이 작업을 수행합니다.

일반적으로 ui 파일을 만들 때 동 일한 동등한 cpp 및 h 파일이 있어야합니다. 그래서 당신의 경우에는 Raka.ui 파일이 있고 Raka.h와 Raka.cpp 파일도 있어야합니다. 가지고 있지 않다면 QtCreator에서 만들어야합니다. 생성자 원하는 초기화 모든 종류의 작업을 수행 할 수 있습니다에서 ...

#include "Raka.h" 

Raka::Raka(QWidget *parent, Qt::WFlags flags) 
    : QWidget(parent, flags) 
{ 
    ui.setupUi(this); 
    ui.MyFrame->setShown(false); 
} 

Raka::~Raka() 
{ 

} 

#ifndef RAKA_H 
#define RAKA_H 

#include <QtGui/QWidget> 
#include "ui_Raka.h" 

class Raka: public QWidget 
{ 
    Q_OBJECT 

public: 
    Raka(QWidget *parent = 0, Qt::WFlags flags = 0); 
    ~Raka(); 

private: 
    Ui::Rakaui; 
}; 

#endif // RAKA_H 

다음 CPP 파일 :

귀하의 헤더 파일은 다음과 같이 보일 것이다. 이 경우 "MyFrame"을 보이지 않게하고 싶기 때문에 setShown을 호출하고 false를 전달합니다.

도움이 되었기를 바랍니다.

+0

굉장! 그것은 QT Designer 인터페이스에서 "raise()"를 쓰지 않기 때문에 gedit을 사용하여 .ui에서 변경했으며 완벽하게 작동합니다. 정말 고마워요! 다른 비트에 관해서, 나는 단지 그것을 감추려는 작은 피부를 만들 수 있다고 생각했기 때문에 그것을 올리면 다른 하나가 숨겨져있다. 그리고 다시 고마워! (: –

관련 문제