나는 3 개의 QToolButton
을 갖는 응용 프로그램을 구현 중이고 초점이 올 때 QToolButton
인 경우 resize
이어야합니다. 내 친구 중 한 명이 대답을주었습니다. 그러나 내 주 윈도우에서 QMainWindow
클래스를 상속 받고 있기 때문에 그것을 파악할 수 없습니다. 그는 QToolButton
도 상속 받고 있다고 말하고 있습니다. 그러나 다중 상속 문제가 발생할 것입니다. 따라서 정확하게 사용하는 방법 focusInEvent()
.focusInEvent 및 focusOutEvent 사용 방법
MyCode:
mywindow.h :
class mywindow : public QMainWindow
{
Q_OBJECT
public:
mywindow() ;
protected:
void keyReleaseEvent(QKeyEvent *event);
void focusInEvent(QFocusEvent *event);
void focusOutEvent(QFocusEvent *event);
private:
QWidget *widget;
QStackedWidget *stack1;
QToolBar *tool;
QListWidget *list1;
QListWidget *list2;
QVBoxLayout *vertical;
QToolButton *button1;
QToolButton *button2;
QToolButton *button3;
public slots:
void fileNew();
void file();
bool eventFilter(QObject *object, QEvent *event);
};
mywindow.cpp :
mywindow::mywindow() : QMainWindow()
{
//some code
}
내가 병합해야
내 친구의 코드 :
class mywindow : public QToolButton
{
private:
int originalWidth, originalHeight;
int bigWidth, bigHeight;
};
void focusInEvent (QFocusEvent * event) {
resize(bigWidth,bigHeight);
QToolButton::focusInEvent(event);
}
void focusOutEvent (QFocusEvent * event) {
resize(originalWidth,originalHeight);
QToolButton::focusOutEvent(event);
}
선언되지 않은 'YourButtton'을 (예 내가 YourButton했다 YourButton.h 및 YourButton.cpp). .h 파일에서 protected : foucusInEvent()를 재정의하고 .cpp 파일에서 YourButton의 크기 조정을 구현할 수 있습니다. 이 링크 응답 http://stackoverflow.com/questions/2804115/qlineedit-focus-event를 참조하십시오. myowindow 클래스에서이 YourButton을 사용해야합니다. – Wagmare
커스텀 위젯을 만드는 방법을 보여주기 위해 당신을 위해 serching하고 있지만 적절한 예제를 찾을 수 없습니다. qt 예제에서는 analogclock 인 shapeClock을 따라갈 수 있지만 그다지 관련성은 없습니다. 이 포럼의 누군가가 그를 도울 수 있다면 .. 제발 .. – Wagmare