【发布时间】:2014-01-16 06:53:37
【问题描述】:
我正在实现一个应用程序,其中我有 3 个QToolButton,当焦点位于任何QToolButton 上时,它应该是resize。
我的一位朋友给了我答案,但我无法弄清楚,因为我在 mainWindow 中也继承了QMainWindow 类。他说也要继承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);
};
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);
}
【问题讨论】:
标签: c++ qt qmainwindow qevent