我在Ubuntu OS的台式机上安装了Qt5.5。

在编译程序时,我遇到了以下错误-

这是我得到的错误

../../work/mainwindow.cpp: In constructor 'MainWindow(QWidget)':
../../work/mainwindow.cpp:63:31:
error: 'qt_screen' was not declared in this scope ui->stackedWidget-
>resize(qt_screen->deviceWidth(),qt_screeb->deviceHeight());

这是我的代码的一部分
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
  ui->setipUi(this);
  setWindowFlags(Qt::CustomizeWindowHint);
  ui->stackedWidget->resize(qt_screen->deviceWidth().qt_screen->deviceHeight());
  ui->stackedWidget->setCurrentWidget(ui->stackedWidgetPageMain);

  initPageMain();

  touch=new Touch();
  powerButton=new PowerButton();
  auxButton=new AuxButton();
  usbOtg=new UsbOtg();
  battery=new Battery();
  panel=new Panel();
  lan=new Lan();
  hPattern= new HPattern();
  lodLog=new LodLog();
  record=new Record();
  led=new Led();
  lightsensor=new LightSensor();
}

我想念任何东西吗?

顺便说一句,我确定我已经将Qscreen纳入其中。

我是否有可能在代码上设置错误?

最佳答案

实际上,QScreen类已从Qt4和Qt5显着改变,以至于它在Qt5中被认为是新的。

Qt4 QScreen有一个称为QScreen::instance()的静态方法,该方法返回QScreen实例指针。回到Qt4,如果我没记错的话,该指针是从全局变量qt_screen中获取的。
所有这些都已更改,因此只需删除所有访问qt_screen的代码并通过正确访问公共(public)API对其进行修复即可。

关于c++ - qt_screen的编译问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42409595/

10-14 04:11