Доступный размер экрана в 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, которая предполагает, что поведение этих функций изменилось.

Другие вопросы по тегам