0

画面の回転に変更を加えたい 、そのようなイベントを処理することになっているメソッドのコードは here から取得されます

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 に答える