Определить поворот экрана в проблемах Qt - PullRequest
0 голосов
/ 12 августа 2011

Я хочу внести некоторые изменения в поворот экрана, код метода, который должен обрабатывать такое событие, взят отсюда

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

edit: Iу меня есть область прокрутки и получение границы вращения, как я могу отрегулировать его размер? чтобы он мог поместиться на экране, пожалуйста, проверьте обработчик событий ниже весь мой код:

//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);
}

Form1::~Form1()
{
    delete ui;
}

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

Я получилэта ошибка:

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

Обратите внимание, что я больше ничего не делал, это весь мой код ... Скажите, пожалуйста, что не так или что не получается?

Пожалуйста, будьте конкретны, я был бы признателен за это ...

Ответы [ 2 ]

2 голосов
/ 28 августа 2014

Вы должны создать слот

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

и реализовать его следующим образом:

void Widget::onResized(int)
{
    QDesktopWidget* screen = qApp->desktop();   
    QSize displaySize;
    if (screen) {
        displaySize = screen->screenGeometry().size();
        if (displaySize != this->size()) {
            this->resize(displaySize);
        }
    }
}
0 голосов
/ 12 августа 2011

Я не вижу никакой ссылки на ваш QMyWidget класс, кроме строки ниже. Может быть, я что-то упустил. Но если вы определили свой класс QMyWidget в другом месте, вам по крайней мере нужно включить заголовок.

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

Может быть, вы имели в виду это вместо вышесказанного:

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

Обновление до комментария: вы можете попробовать сделать это.

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");
}
...