Это может быть очень сложный вопрос, на который не многие знают ответ, но я все равно буду его задавать.
У меня есть класс, производный от QWindow, с перегруженным event (), который использует хранилище Backing и заполняет все окно цветом, скажем, черным.
Теперь у меня есть мое приложение QT QML, когда я создаю свое окно и устанавливаю родителя в качестве основного вида моего приложения, я получаю окно размером 1x1px! Это сводит меня с ума..
Я копал хотя исходный код QT и нашел это:
void QQnxRasterWindow::adjustBufferSize()
{
// When having a raster window we don't need any buffers, since
// Qt will draw to the parent TLW backing store.
const QSize windowSize = window()->parent() ? QSize(1,1) : window()->size();
if (windowSize != bufferSize())
setBufferSize(windowSize);
}
void QQnxRasterWindow::setParent(const QPlatformWindow *wnd)
{
QQnxWindow::setParent(wnd);
adjustBufferSize();
}
Что обидно, потому что я понятия не имею, как мне использовать TLW и рисовать в моем окне сейчас.
Есть идеи?
Прежде всего, что такое TLW?
Во-вторых, как мне нарисовать родительский TLW так, чтобы он оказался в моем буфере окна.
Спасибо
QT 5.3.1
Редактировать:
не renderNow () — моя ошибка,
Событие перегруженной функции, которое использует событие UpdateRequested для рисования моего фона.
Edit2:
Также это проблема, только когда я устанавливаю parent, когда нет родительского набора, который я могу сделать так, как я хочу с моим QWindow, и у него есть собственный буфер. Странно как-то.
Задача ещё не решена.