【问题标题】:Compilation issue with qt_screenqt_screen 的编译问题
【发布时间】:2017-07-13 13:42:22
【问题描述】:

我在 Ubuntu 操作系统的台式电脑上安装了 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 包含在其中。

有没有可能我的代码设置错误?

【问题讨论】:

  • 在范围内你至少有一个声明'qt_screen'的行,例如QScreen* qt_screen
  • 两个厘米。 1) 错误文本有一个名为 qt_screeb 而不是 qt_screen 的变量,但错误显示 qt_screen 未声明。斯坦奇。 2)resize方法有一个点(.)而不是一个逗号(,

标签: c++ qt5.5


【解决方案1】:

QScreen 类与 Qt4 和 Qt5 相比发生了显着变化,实际上变化很大,以至于它在 Qt5 中被认为是新的。

Qt4 QScreen 有一个名为QScreen::instance() 的静态方法,它返回一个 QScreen 实例指针。早在 Qt4 中,如果我没记错的话,这个指针取自全局变量 qt_screen。 这一切都改变了,所以只需删除所有访问 qt_screen 的代码并通过正确访问公共 API 来修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多