Проблема компиляции с qt_screen

У меня установлен Qt5.5 на настольном ПК в ОС Ubuntu.

При компиляции моей программы я получаю ошибку ниже -

Вот что я получил за ошибку

../../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.

Есть ли вероятность, что я могу неправильно установить свой код?


person Tsung-Li Wang    schedule 23.02.2017    source источник
comment
У вас есть хотя бы строка, объявляющая 'qt_screen', например QScreen* qt_screen, в пределах области действия?   -  person polarysekt    schedule 23.02.2017
comment
Два комментария. 1) В тексте ошибки есть переменная с именем qt_screeb вместо qt_screen, но ошибка говорит, что qt_screen не было объявлено. Штанге. 2) Метод resize имеет точку (.) вместо запятой (,)   -  person Tarod    schedule 23.02.2017
comment
Возможный дубликат транспортного объекта QT QWebEnginePage::setWebChannel()   -  person Tsung-Li Wang    schedule 29.03.2017


Ответы (1)


Класс QScreen заметно изменился по сравнению с Qt4 и Qt5, на самом деле настолько сильно, что он считается новым в Qt5.

Qt4 QScreen имел статический метод с именем QScreen::instance(), который возвращал указатель экземпляра QScreen. Еще в Qt4 этот указатель был взят из глобальной переменной qt_screen, если я правильно помню. Все это изменилось, поэтому просто удалите весь код, который обращается к qt_screen, и исправьте его, правильно обратившись к общедоступным API.

person Jens    schedule 23.02.2017