Доступный размер экрана в Linux в Qt 3
QDesktopWidget * screen = QApplication::desktop();
QRect size = screen->availableGeometry(this);
Документация гласит:
То, что доступно, будет зависеть от screenGeometry() в зависимости от того, что платформа решит, доступно (например, исключая Dock и Menubar в Mac OS X или панель задач в Windows).
Я хочу знать, как я могу получить доступную геометрию экрана (без панелей) в Linux? Я пробовал приведенный выше код для Linux, но он возвращает физический размер экрана.
2 ответа
Для большинства случаев availableGeometry()
работает. Я использую виртуальный экран. Иногда это не работает должным образом.
Этот вопрос подразумевает, что призвание QApplication::desktop()->size()
даст вам размер рабочего стола в Linux без панелей.
// called from inside the MainWindow constructor
QDesktopWidget* dt(QApplication::desktop());
this->resize(dt->size());
Этот код корректно изменяет размеры главного окна, чтобы заполнить пространство между верхней и нижней полосами в Ubuntu 10.04 с Qt 4.8. Я не вижу никакой разницы в документации между Qt3 и Qt 4.8, которая предполагает, что поведение этих функций изменилось.