Russian Qt Forum

Qt => Общие вопросы => Тема начата: anv от Ноябрь 11, 2012, 11:34



Название: второе окно-черный экран
Отправлено: anv от Ноябрь 11, 2012, 11:34
Всем привет.Первый виджет листалка картинок.Второй -настройки,при нажатии клавиши клавиатуры. В студии все прекрасно собирается без ошибок и предупреждений. Соответственно и работает все нормально. При сборке в креаторе под ubuntu то же не ругается. Но при запуске на распбери листалка работает,но при открытии окна ностроек - весь экран черный и видна мышка.
Сначала думал,что кривые классы в настройках.Потом сделал новый виджет с QLabel текстом - все равно черный экран.В первом виджете пробовал останавливать таймер - не помогло...
В конструкторе:
Код:
wgt3= new QWidget(this,Qt::Window|Qt::WindowSystemMenuHint);
    wgt3->setVisible(false);
    templabel= new QLabel("temp",wgt3);
    wgt3->resize(960,540);
активация по нажатию:
Код:
void Mywgt1::keyPressEvent(QKeyEvent*pe)
{
if (pe->key()==Qt::Key_Escape){emit exit();}
if (pe->key()==Qt::Key_J)
     {
          pwgt2->setVisible(true);

          emit return_timer(timersec_check);
          emit return_fontsize(font_size_sh_check);
          emit return_fonttype(font_type_sh_check);
          emit return_fontcolor(font_color_sh_check);
          emit return_speed_runline(speed_runline_check);
          emit return_font_size_html(font_size_html_check);
          sl_pause_widget();

     }
    if (pe->key()==Qt::Key_R){wgt3->setVisible(true);}
QWidget::keyPressEvent(pe);
}


Название: Re: второе окно-черный экран
Отправлено: kambala от Ноябрь 11, 2012, 13:57
Qt::Window|Qt::WindowSystemMenuHint — пробовал это убирать?


Название: Re: второе окно-черный экран
Отправлено: anv от Ноябрь 11, 2012, 18:27
Убрал - вообще не показывает и в винде.Похоже у меня что то не то с размерами виджетов.
В main главном к меня создается главный виджет(он же show) и его дочерний - виджет1. Про размеры ничего нет.В конструкторе виджет1 - resize(1920,1080). И только затем ,там же ,в конструкторе виджета1 создается виджет2(wgt3). Я хотел попробоdать виджет2 сделать видимым одновременно с в.1 . Написал для в.2 setVisible(true),setMaximumSize(960,540). В винде все нормально,а в линуксе растягивается в2 на весь экран как при полноэкранном режиме и не видно рамки с кнопкой закрытия.


Название: Re: второе окно-черный экран
Отправлено: anv от Ноябрь 12, 2012, 19:26
Сделал упрощенный вариант - parent виджет resize 1920,1080.  От него создается три кнопки и три виджета:
Код:
wgt21= new Mywgt2(this,Qt::Window|Qt::WindowSystemMenuHint,"text1");
  wgt21->setFixedSize(960,540);

  wgt22= new Mywgt2(this,Qt::Window|Qt::WindowSystemMenuHint,"text2");
  wgt22->resize(960,540);
  wgt22->setWindowState(windowState()|Qt::WindowActive);

  wgt23= new Mywgt2(this,Qt::Window|Qt::WindowSystemMenuHint,"text3");
  wgt23->resize(960,540);
  wgt23->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed));
В виндоус все нормально-нажал кнопку появилось окошко.
В линуксе(raspbian) .Парент виджет растягивается на весь экран без рамки и кнопки закрытия,хотя установлено show(не showFullScreen).
Чилд виджеты первый и третий появляютя,но то же растягиваются на весь экран как фуллскрин.Второй вылетает в черный экран.



Название: Re: второе окно-черный экран
Отправлено: kambala от Ноябрь 12, 2012, 20:07
wgt22->setWindowState(wgt22->windowState()|Qt::WindowActive); — так попробуй, хотя и не совсем понятно зачем это нужно. если хочешь, чтобы этот виджет был активным, то сделай ему setFocus() после появления виджета-родителя.


Название: Re: второе окно-черный экран
Отправлено: anv от Ноябрь 12, 2012, 20:34
Благодарю, за помощь. Но  наверное это вариант мне не поможет как и первый с третьим.Я пытаюсь получить окошко заданного размера,как в винде. А здесь у меня почему то любой виджет  фуллскрин . А три виджета потому,что каждое исправление это копирование на sd карту,переключениемонитора,клавы с мышкой.Т.е. три попытки добиться оного и того же- открытия окна в оконном режиме с заданными размерами.


Название: Re: второе окно-черный экран
Отправлено: kambala от Ноябрь 12, 2012, 22:45
могут быть просто какие-то особенности оконного менеджера твоего линукса