Qt прыкладанне працуе на працоўным стале, але не ноўтбук?

Я пішу OpenGL прыкладанні з дапамогай Qt, і ён будуе і выдатна працуе на маім працоўным стале, але калі я спрабую запусціць той жа код на маім ноўтбуку, ён будуе, але не выводзіць нічога? Вось мой main.cpp

#include 
#include 
#include "GLWidget.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    GLWidget window;
    window.resize(1050,700);
    window.setFixedSize(1050, 700);
    window.show();

    return app.exec();
}

Я не хачу, каб карыстальнік мог змяняць памер акна, такім чынам, фіксаванага памеру. Калі б я паставіў кропку супыну на апошнім радку галоўнага, ён ніколі не дасягне яго на маім ноўтбуку. Я прайшоў праз код і адразу пасля шоў() завецца (гэта проста убудаваная функцыя) адладчык заканчваецца з кодам 0. Я праверыў усе зборкі праекта і запуску ўстаноўкі, яны аднолькавыя на абедзвюх машынах. Мой працоўны стол мае манітор 1920х1080, але мой ноўтбук толькі 1366x768 гэта магло мець нічога агульнага з ім? Ці ёсць нейкая ўнутраная праверка адбываецца пад капотам у Qt, якая залежыць ад майго дазволу экранаў? Гэта ў значнай ступені адзінае, што я магу думаць.

1
адзінае ў маёй glwidget.h гэта аб'ява класа. Бачачы, як той жа код выдатна працуе на маім працоўным стале, я адчуваю, што гэта больш праблем навакольнага асяроддзя.
дададзена аўтар mikestaub, крыніца
@KeithThompson я выкарыстоўваю win7 на абодвух акампанемент
дададзена аўтар mikestaub, крыніца
@karlphillip я паспрабаваў падзелу на 2, тымі ж вынікамі. працуе на стале, а не на ноўтбуку
дададзена аўтар mikestaub, крыніца
@BenVoigt ДГІ усталёўваецца на 100% на абедзвюх машынах
дададзена аўтар mikestaub, крыніца
@karlphillip, калі я адладка на маім ноўтбуку, канструктар GLWidget называецца, змены памеру мае поспех выклік і выхады адладчыка пасля выкліку шоў (). Гэта адбываецца з-за любы памер GLWidget.
дададзена аўтар mikestaub, крыніца
Што OS вы выкарыстоўваеце?
дададзена аўтар Keith Thompson, крыніца
Ваша здагадка можа быць правільным, @pixelpusher. Там просты тэст, які вы можаце зрабіць, падзяліць памеры вы перадаеце на 2, і паглядзець, калі новае прыкладанне можа працаваць на працоўным стале, а таксама на ноўтбуку.
дададзена аўтар karlphillip, крыніца
Вы можаце стварыць <�б> GLWidget любога памеру на вашым ноўтбуку? Я думаю, што ваша даследаванне павінна пачынацца тут.
дададзена аўтар karlphillip, крыніца
У вас ёсць усе бібліятэкі Qt, устаноўленыя на ноўтбуку? Гэта, магчыма, адсутнічае праблему ў залежнасці ці ён можа спрабаваць выкарыстоўваць іншую версію бібліятэкі. Пераканайцеся, што ваш PATH зменнай асяроддзя паказвае на правільныя бібліятэкі.
дададзена аўтар karlphillip, крыніца
Я б праверыць налады DPI таксама, у выпадку, калі ваш памер у пікселях становіцца autoscaled.
дададзена аўтар Ben Voigt, крыніца
Можа быць, гэта нешта ўнутранае ў вашым glwidget.h?
дададзена аўтар Morten Kristensen, крыніца
Для таго, каб задаць відавочны пытанне: Вы скампіляваць Qt з OpenGL падтрымкі?
дададзена аўтар Robin, крыніца
Праверце, калі ў вас ёсць апошнія версіі драйвераў дысплея.
дададзена аўтар user362638, крыніца
Яшчэ ў той час у мяне была аналагічная праблема, здавалася б, з аднаго машыне Windows XP ў бальніцы з сур'ёзнымі абмежаваннямі доступу. OpenGL Qt прыкладанне не будзе працаваць - збой пры запуску. У рэшце рэшт я звузіў яго да DLLs OS OpenGL. Прыкладанне не было дазволена выкарыстоўваць OpenGL LIBS ўзроўню АС ці OpenGL адсутнічае ў АС. Паспрабуйце выкарыстоўваць залежыць на QtOpenGl4.dll на вашым ноўтбуку, каб праверыць, усе бібліятэкі з'яўляюцца даступнымі. Акрамя таго, вы перакампіляваць дадатак на ноўтбуку ці проста скапіяваць двайковы файл з працоўнага стала?
дададзена аўтар ak., крыніца

1 адказы

<�Р> Я не хачу, каб карыстальнік мог змяняць памер акна

Ці магу я спытаць, чаму? Ці магу я мяркую, вы хочаце, каб акно быць фіксаваным памерам, таму што вы хочаце выкарыстоўваць OpenGL для стварэння малюнка менавіта такога памеру? Калі гэта так, то я павінен сказаць вам, гэта не будзе працаваць такім чынам. рэалізацыі OpenGL толькі робяць тое, што будзе відаць на (цесцю уласнасці пікселяў) на экране. Калі частцы акна не бачныя (і ў вашым выпадку гэта будзе мець месца на ноўтбуку) гэтыя пікселі проста не адлюстроўваюцца. Выгрузка фреймбуфера пакіне гэтыя пікселі нявызначаных.

Правільны спосаб рашэння гэтай праблемы заключаецца ў выкарыстанні альбо піксельных буфера , або Буфер кадра Аб'екта (FBO) . FBOs прасцей у выкарыстанні, але не так шырока падтрымліваецца ў АС Windows (Intel графіка на Windows, маюць даволі дрэнную падтрымку FBO). FBOs падтрымліваюцца ўсімі рэалізацыямі Linux OpenGL (Mesa (таксама робіць Intel), ATI/AMD і NVidia). Ёсць numerours FBO і піксельных буфер падручнікі ў Інтэрнэце.

1
дададзена