1

画面の数や解像度が変わるたびに、ウィンドウのサイズを変更したいと考えています。QtCreator で最小限の C++ アプリケーションを作成しました。次に、これらの行を MainWindow コンストラクターに追加しました

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
    QDesktopWidget* desktop = QApplication::desktop();
    QObject::connect(desktop, SIGNAL(screenCountChanged(int)), this, SLOT(updateScreens()));
    QObject::connect(desktop, SIGNAL(resized(int)), this, SLOT(updateScreens()));
}

そして、ここに関数があります:

void MainWindow::updateScreens() {
    qDebug() << "Here";
}

.h ファイルのスロットとして定義しました。

class MainWindow: public QMainWindow
{
    Q_OBJECT
    .......
public slots:
    void updateScreens();
}

プロジェクトを Qt 4.8.4 (Mingw) でコンパイルして実行し、解像度を変更すると、Here出力が得られます。Qt 5.1.1 (Mingw) で再コンパイルして実行すると、まったく同じ方法で解像度を変更しても何も起こりません。

これは新しいリリースのバグですか? 今、何か違うことをする必要がありますか? システム: Windows7 x64 mingw 上の Qt 5.1.1。

4

0 に答える 0