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