Hi all,
I have come across a problem with a custom class of mine with no GUI parts affecting a QMainWindow class which is using it.
The effect is to mask the main window upper left corner out to screen coords 99,29 so that if I have a button on the main window in the upper left corner the user cannot click it until the mouse is outside the area 0,0 to 99,29. I've checked this on WinXp, Win7 and Qt4.8 and Qt5.1 with MinGw on three different pc's.
To demonstrate this effect I have built a simple program . A QMainWindow with just a button and a label then a QMouseDown event to show the mouse click position. Next I created a new class ("TestClass") based on QWidget with nothing in it at all. If I add the new class to the mainwindow code I get the above masking effect - any clues to where the problem lies ?
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMouseEvent>
#include "testclass.h"
namespace Ui {
class MainWindow;
}
/****************************************************************/
{
Q_OBJECT
public:
explicit MainWindow
(QWidget *parent
= 0);
~MainWindow();
private:
Ui::MainWindow *ui;
TestClass *TS ;
};
/****************************************************************/
#endif // MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMouseEvent>
#include "testclass.h"
namespace Ui {
class MainWindow;
}
/****************************************************************/
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void mousePressEvent(QMouseEvent *event) ;
private:
Ui::MainWindow *ui;
TestClass *TS ;
};
/****************************************************************/
#endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
#include "mainwindow.h"
#include "ui_mainwindow.h"
/****************************************************************/
MainWindow
::MainWindow(QWidget *parent
) :{
ui->setupUi(this);
TS = new TestClass(this) ;
}
/****************************************************************/
MainWindow::~MainWindow()
{
delete TS ;
delete ui;
}
/****************************************************************/
{
ui
->MouseMsg
->setText
(QString::number(event
->x
()) + ", " + QString::number(event
->y
()));
}
/****************************************************************/
#include "mainwindow.h"
#include "ui_mainwindow.h"
/****************************************************************/
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
TS = new TestClass(this) ;
}
/****************************************************************/
MainWindow::~MainWindow()
{
delete TS ;
delete ui;
}
/****************************************************************/
void MainWindow::mousePressEvent(QMouseEvent *event)
{
ui->MouseMsg->setText(QString::number(event->x()) + ", " + QString::number(event->y()));
}
/****************************************************************/
To copy to clipboard, switch view to plain text mode
#ifndef TESTCLASS_H
#define TESTCLASS_H
#include <QWidget>
/****************************************************************/
{
Q_OBJECT
public:
explicit TestClass
(QWidget *parent
= 0);
signals:
public slots:
};
/****************************************************************/
#endif // TESTCLASS_H
#ifndef TESTCLASS_H
#define TESTCLASS_H
#include <QWidget>
/****************************************************************/
class TestClass : public QWidget
{
Q_OBJECT
public:
explicit TestClass(QWidget *parent = 0);
signals:
public slots:
};
/****************************************************************/
#endif // TESTCLASS_H
To copy to clipboard, switch view to plain text mode
#include "testclass.h"
/****************************************************************/
TestClass
::TestClass(QWidget *parent
) :{
}
/****************************************************************/
#include "testclass.h"
/****************************************************************/
TestClass::TestClass(QWidget *parent) :
QWidget(parent)
{
}
/****************************************************************/
To copy to clipboard, switch view to plain text mode
Bookmarks