0

我想对屏幕旋转做一些更改,应该处理此类事件的方法的代码取自这里

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

编辑:我有一个滚动区域,它的边框在旋转时如何调整它的大小?所以它可以适合屏幕请检查下面的事件处理程序 我的整个代码:

//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

请注意,我没有做任何其他事情这是我的整个代码......你能告诉我什么是错的或什么没有得到吗?

请具体说明我将不胜感激...

4

2 回答 2

2

您必须创建插槽

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);
        }
    }
}
于 2014-08-28T10:25:08.220 回答
0

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");
}
于 2011-08-12T08:46:56.317 回答