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