Russian Qt Forum
Ноябрь 25, 2024, 17:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: второе окно-черный экран  (Прочитано 4420 раз)
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);
}
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Ноябрь 11, 2012, 13:57 »

Qt::Window|Qt::WindowSystemMenuHint — пробовал это убирать?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
anv
Гость
« Ответ #2 : Ноябрь 11, 2012, 18:27 »

Убрал - вообще не показывает и в винде.Похоже у меня что то не то с размерами виджетов.
В main главном к меня создается главный виджет(он же show) и его дочерний - виджет1. Про размеры ничего нет.В конструкторе виджет1 - resize(1920,1080). И только затем ,там же ,в конструкторе виджета1 создается виджет2(wgt3). Я хотел попробоdать виджет2 сделать видимым одновременно с в.1 . Написал для в.2 setVisible(true),setMaximumSize(960,540). В винде все нормально,а в линуксе растягивается в2 на весь экран как при полноэкранном режиме и не видно рамки с кнопкой закрытия.
Записан
anv
Гость
« Ответ #3 : Ноябрь 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).
Чилд виджеты первый и третий появляютя,но то же растягиваются на весь экран как фуллскрин.Второй вылетает в черный экран.

Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Ноябрь 12, 2012, 20:07 »

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
anv
Гость
« Ответ #5 : Ноябрь 12, 2012, 20:34 »

Благодарю, за помощь. Но  наверное это вариант мне не поможет как и первый с третьим.Я пытаюсь получить окошко заданного размера,как в винде. А здесь у меня почему то любой виджет  фуллскрин . А три виджета потому,что каждое исправление это копирование на sd карту,переключениемонитора,клавы с мышкой.Т.е. три попытки добиться оного и того же- открытия окна в оконном режиме с заданными размерами.
« Последнее редактирование: Ноябрь 12, 2012, 21:42 от anv » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Ноябрь 12, 2012, 22:45 »

могут быть просто какие-то особенности оконного менеджера твоего линукса
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.175 секунд. Запросов: 23.