我正在实现一个应用程序,其中我有 3QToolButton
并且当焦点出现在任何QToolButton
它应该的时候resize
。我的一位朋友给了我答案,但我无法弄清楚,因为我QMainWindow
也在我的 mainWindow 中继承类。他也说要继承QToolButton
。但是会出现多重继承问题。那么具体如何使用focusInEvent()
。
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);
};
我的窗口.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);
}