QDesktopWidget信号在Qt 5.1.1中没有触发(它们在Qt 4.8.4中执行)

时间:2013-10-28 01:28:09

标签: qt

每当屏幕数量或其分辨率发生变化时,我想调整窗口大小。我用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。

0 个答案:

没有答案