crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Скриншот в Линукс
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
V7T Дата 13.10.2011, 10:22
  Спасибо вам.

Как оказалось ни чего сложного не было:
QPixmap screenshot = QPixmap::grabWindow(QApplication::desktop()->winId());
DOGG Дата 12.10.2011, 14:13
  qt_xrootwin() - скорее всего это функция получения WId виртуального корневого окна в X Window System.

Ищите как его определить и сможете сами ее дописать (можете вот сдесь посмотреть вот сдесь есть про это).
registr Дата 11.10.2011, 21:55
  Похоже, что это какая-то самописная функция.

Qt Assistant:
QPixmap QPixmap::grabWindow ( WId window, int x = 0, int y = 0, int width = -1, int height = -1 )

Creates and returns a pixmap constructed by grabbing the contents of the given window restricted by QRect(x, y, width, height).

The arguments (x, y) specify the offset in the window, whereas (width, height) specify the area to be copied. If width is negative, the function copies everything to the right border of the window. If height is negative, the function copies everything to the bottom of the window.

Ты лучше сам ее допиши.

Т.е. сам вставь нужные значения.

Читаем дальше:
The window system identifier (WId) can be retrieved using the QWidget::winId() function. The rationale for using a window identifier and not a QWidget, is to enable grabbing of windows that are not part of the application, window system frames, and so on.

The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.
V7T Дата 11.10.2011, 20:45
  Здравствуйте, уважаемые форумчане!
Сразу скажу c QT и линуксом, до сих пор, дела никогда не имел, да и с плюсами очень мало работал, в основном программировал на шарпе.
Суть такова, нужно написать простенькое приложение клиент-сервер, клиент каждые несколько секунд делает скриншот всей области экрана с последующей отправкой его на сервер. В принципе литературу перелопатил малость "основы программирования в линукс". Приложение пишу консольное. Нашел код в интернете, который делает скрин, и столкнулся с проблемой...

....
#include <qpixmap.h>

int main(int argc, char *argv[])
{
...
QPixmap screenshot = QPixmap::grabWindow(qt_xrootwin());
screenshot.save(QString(getenv("HOME"))+"/screen.png","PNG",100);
return 0;
...
}

... что за метод qt_xrootwin()? При компилировании ругается "error: ‘qt_xscreen’ was not declared in this scope". На просторах инета ни черта не нашел.
И по сему, уважаемые, решил обратиться к вам. Подскажите, может нужно подключить библиотеку какую-нибудь(я копался в СДК QT и видел пример приложения СКРИНШОТ, но мне хотелось бы использовать именно данный, т.к. сразу в таймер загнал этот маленький кусок и все)?
Спасибо.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.9.2022, 17:04