开发者

Detect Screen Rotation in Qt issues

开发者 https://www.devze.com 2023-03-27 09:14 出处:网络
I want to do some changes on screen rotation , the code of the method that is supposed to handle such event is taken from here

I want to do some changes on screen rotation , the code of the method that is supposed to handle such event is taken from here

http://www.developer.nokia.com/Community/Wiki/CS001437_-_Listening_for_screen_orientation_changes_in_Qt

edit: I have a scroll area , and its getting of border on rotation how can i adjust its size?so it could fit the screen plz check the event handler below this my whole code :

//FORM1.CPP
#include "form1.h"
#include "ui_form1.h"
#include "form.h"
#include "ui_form.h"
#include <QResizeEvent>



Form1::Form1(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form1)
{
    ui->setupUi(this);
}

开发者_StackOverflowForm1::~Form1()
{
    delete ui;
}

//the method that is supposed to handle such event
void Form1::resizeEvent (QResizeEvent* event)
{
    QWidget::resizeEvent(event);
    ui->textBrowser->setText("karim");
}

I got this error:

\Users\user\Desktop\karim\Qt\Project\form1.cpp:31: error: 'QMyWidget' has not been declared

Please note that I didn't do anything else this is my whole code ... Can you please tell me whats wrong or what am not getting ?

Please be specific I would appreciate that ...


You must create slot

connect(qApp->desktop(), SIGNAL(resized(int)), this, SLOT(onResized(int)));

and implement it like:

void Widget::onResized(int)
{
    QDesktopWidget* screen = qApp->desktop();   
    QSize displaySize;
    if (screen) {
        displaySize = screen->screenGeometry().size();
        if (displaySize != this->size()) {
            this->resize(displaySize);
        }
    }
}


I do not see any reference to your QMyWidget class other than the below line. May be I'm missing something. But if you have defined your QMyWidget class elsewhere, you atleast need to include the header.

void QMyWidget::resizeEvent(QResizeEvent* event)
{
    ui->labelk->setText("blabla");
}

May be you meant this instead of the above:

void Form1::resizeEvent(QResizeEvent* event)
{
    ui->labelk->setText("blabla");
}

Update to the comment: You can try doing this.

void Form1::resizeEvent(QResizeEvent* event)
{
    // call the base class for the default behavior
    QWidget::resizeEvent(event);
    // Add your custom changes here
    ui->labelk->setText("blabla");
}
0

精彩评论

暂无评论...
验证码 换一张
取 消