LINUX.ORG.RU

root-forum.cern.ch

anonymous
()

Там у тебя CINT я ооооооочень давно не тыкал, но выделяешь память как в С или С++ пишешь туда обычным С/С++ кодом и сохраняешь обычным fprintf или cout <<. Но это когда чистоинтерпретатор, а когда именно фреймворк ROOT там уже своё что-то, а вот что не в курсе я.

Тут почитай https://root.cern/manual/storing_root_objects/ https://root.cern.ch/root/html534/guides/users-guide/CINT.html#cint-the-c-interpreter

LINUX-ORG-RU ★★★★★
()

Через TImage, наверное, можно выводить буффер.

anonymous
()

Зачем тебе ROOT? Какую картинку ты отрисовываешь? Зачем тебе её копировать в памяти?

luke ★★★★★
()
Ответ на: комментарий от luke

Например.

https://www.youtube.com/watch?v=acX6PRjDyhw

Мне нужно получить pixmap этой картинки и передать ее копию в другой поток, процесс или по сети.

Еще задача научить ROOT рисовать в окне, создаваемым другой GUI библиотекой, кроме qt.

Zpp
() автор топика
Ответ на: комментарий от Zpp

этой картинки

Это не картинка, а гистограмма TH2F. Как ты её заполняешь?

Гистограмму можно перевести в TImage по этому туториалу: https://root.cern.ch/doc/master/hist2image_8C.html

Ну и дальше передавай свой TImage куда тебе надо.

luke ★★★★★
()
Ответ на: комментарий от Zpp

Еще задача научить ROOT рисовать в окне, создаваемым другой GUI библиотекой, кроме qt.

Это надо в потроха рута лезть и переписывать его внутренние классы. Кто дал тебе такое задание вообще, да ещё и без указания конкретной GUI библиотеки? Седьмой рут уже рисует в веб браузере, например, это сойдёт за решение?

luke ★★★★★
()
Ответ на: комментарий от luke
Еще задача научить ROOT рисовать в окне, создаваемым другой GUI библиотекой, кроме qt.

Это надо в потроха рута лезть и переписывать его внутренние классы.

Хватит 4.2 устраивать, -70 захотел?

https://root-forum.cern.ch/t/how-to-embed-a-tcanvas-in-external-applications/28247

anonymous
()
Ответ на: комментарий от anonymous

Ух ты, круть.

-70 захотел

В наше время только бы о score и переживать.

luke ★★★★★
()
Ответ на: комментарий от Zpp

И как это решает

задача научить ROOT рисовать в окне, создаваемым другой GUI библиотекой, кроме qt.

?

   void MyWindow::Create() {
      // Add this window to TVirtualX list of windows
      // in return get its TVirtualX identifier
      int wid = gVirtualX->AddWindow((ULong_t)getid(), getWidth(), getHeight());

      // Create a new TCanvas, specifying this windows id as parent
      fCanvas = new TCanvas("fCanvas", getWidth(), getHeight(), wid);
   }

https://root.cern/doc/v608/classTVirtualX.html#a7ee38aab35749310d59cb31c79001a74:

AddWindow Registers a window created by Qt as a ROOT window.

anonymous
()
Ответ на: комментарий от anonymous

Глянул по-быстрому в сырцы class TGX11 : public TVirtualX. Похоже, про ID окна созданного Qt это лажа документации. Должно жрать просто ID любого X11-окна.

Думаю, на других платформах (WinAPI, Cocoa), так же: жрёт нативный хэндл окна. А не «созданный Qt» (впрочем, «созданный Qt» может просто всегда совпадать с нативным).

anonymous
()
Ответ на: комментарий от anonymous

embed a TCanvas in an application created with toolkits as QT, FOX, MFC, and probably many more.

Zpp
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.