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