Название: Развернуть окно Отправлено: Victor007 от Июнь 05, 2013, 17:03 Здравствуйте!
Возник вопрос: как развернуть окно на весь экран? То есть так, чтобы при запуске приложения Widget (или MainWindow) сразу автоматически занимало весь экран, закрывая собой и панель к кнопкой пуск, часами и т.д. и не было видно "шапки" самого виджета? Сама программа очень простая, рисует прямоугольник на белом фоне этого окна. Спасибо! Название: Re: Развернуть окно Отправлено: Bepec от Июнь 05, 2013, 17:21 вирусописатель? :)
Название: Re: Развернуть окно Отправлено: Kurles от Июнь 05, 2013, 18:34 Здравствуйте! Возник вопрос: как развернуть окно на весь экран? То есть так, чтобы при запуске приложения Widget (или MainWindow) сразу автоматически занимало весь экран, закрывая собой и панель к кнопкой пуск, часами и т.д. и не было видно "шапки" самого виджета? Сама программа очень простая, рисует прямоугольник на белом фоне этого окна. Спасибо! Код
Название: Re: Развернуть окно Отправлено: Kurles от Июнь 05, 2013, 18:34 вирусописатель? :) Вирус на Qt? Оригинально :)Название: Re: Развернуть окно Отправлено: Bepec от Июнь 05, 2013, 19:44 Вполне нормальный вирус написать можно :D
Название: Re: Развернуть окно Отправлено: lighting от Июнь 06, 2013, 12:09 и какое отношение вопрос имеет к Qt Quick?
Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 06, 2013, 16:56 Всем большое спасибо!
To lighting: прошу прощения, вообще стараюсь следить , но тут, видимо, просмотрел. Можно наверное перенести тему? Мой код main.cpp такой: #include "mainfr.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainFr w; w.show(); return a.exec(); } Попробовал вставить предложенные варианты, но все время получаю ошибки. Что не так делаю? Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 06, 2013, 17:08 Ага! Вот так получилось:
w.showFullScreen(); Да, не сразу сообразишь, как из такого окна выйти. Пока пользуюсь Alt+F4 Забыл еще написать, чтобы всех разуверить: программа нужна для управления экспериментальной установкой, так что вирусы здесь не причем) PS: Сразу спрошу, раз уж я все равно влез не в ту тему. Мне необходимо этот прямоугольник на белом фоне перерисовывать раз в секунду. Видимо, мне нужна функция задержки и стирания всего, что было нарисовано. Может, подскажете, как это реализовать? Еще раз большое всем спасибо! Название: Re: Развернуть окно Отправлено: Bepec от Июнь 06, 2013, 18:15 Мб проще не мучиться и сразу назвать цель, а не конкретную проблему?
PS на мой взгляд вы пишите ПО на комп, которое будет аналогом ОС. Ну т.е. на весь экран, графики, набор действий и больше ничего. PPS а под какую платформу? Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 07, 2013, 16:53 У меня достаточно большая программа, состоит из нескольких "блоков", то есть, сначала выводится одно окно, потом другое, потом идет обработка данных и т.д. Все это описывать нет смысла. Программа была написана под builder, но недавно главную часть, с которой были проблемы переписали (не я) под qt. Получилось очень красиво и работает безукоризненно. На выходе, мне теперь проще освоить qt и переписать недостающие блоки исходной программы. Опыта пока мало, но он очень полезен. Вроде все объяснил.
Поэтому я и спрашиваю только некоторые технические аспекты. Еще раз спасибо за такую оперативную помощь. Так как мне сделать перерисовку экрана? По идее, это должно быть достаточно тривиально. Мне дали вот такой совет: "Если нужна перерисовка, используйте таймер. По таймеру перемещайте объект (функция translate)", но, честно говоря, я его не очень понял. Работаю в win8, соответственно, 64-бита. Название: Re: Развернуть окно Отправлено: Kurles от Июнь 10, 2013, 11:51 Поэтому я и спрашиваю только некоторые технические аспекты. Еще раз спасибо за такую оперативную помощь. Всё зависит от того, как ты рисуешь на экране. А так пока тока один совет вырисовывается - вызывать слот update() у виджета через соединенный сигнал таймера timeout(), настроенный на секунду.Так как мне сделать перерисовку экрана? По идее, это должно быть достаточно тривиально. Мне дали вот такой совет: "Если нужна перерисовка, используйте таймер. По таймеру перемещайте объект (функция translate)", но, честно говоря, я его не очень понял. Работаю в win8, соответственно, 64-бита. Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 10, 2013, 16:58 Спасибо, идея понятна! Я пока еще очень с трудом ориентируюсь в сигналах и слотах. Нельзя ли написать какой-то минимальный код?
Название: Re: Развернуть окно Отправлено: Kurles от Июнь 11, 2013, 10:33 Спасибо, идея понятна! Я пока еще очень с трудом ориентируюсь в сигналах и слотах. Нельзя ли написать какой-то минимальный код? Код
Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 11, 2013, 16:35 Спасибо! Правда, так сразу все равно ничего не работает. Во-первых, программе в этой строке
Код: QTimer *timer = new QTimer(this); Во-вторых, я решил сначала немного упростить задачу: просто сделать задержку при рисовании каждого следующего прямоугольника. Попробовал вот такой вариант: Код: void MainFr::paintEvent(QPaintEvent *) Однако прямоугольники рисуются без какой-либо задержки. В чем здесь может быть дело? Название: Re: Развернуть окно Отправлено: mutineer от Июнь 11, 2013, 17:28 А где должна быть задержка? timer->start() не задерживает выполнение в точке своего вызова
Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 11, 2013, 18:20 А есть ли такая функция? (задержки в точке вызова)
Или как тогда правильно вызвать timer->start? Или это уже другая задача и надо ориентироваться на код по перерисовке экрана (основной вопрос)? Его я тоже вставлял: Код: void MainFr::paintEvent(QPaintEvent *) но опять безрезультатно( Название: Re: Развернуть окно Отправлено: Kurles от Июнь 13, 2013, 20:19 Если я правильно понял, то тебе нужно что-то типа этого черезпопного решения:
Код Естественно должен быть где-то извне заведен таймер на слот update виджета MainFr. Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 14, 2013, 00:11 Kurles, спасибо! Нет-нет, Вы неправильно меня поняли) Наверное, не стоило приводить код. Понимаете, у меня с алгоритмикой все в порядке, я программировал, например, на Builder (и не только), так что какие-то представления есть. Такую программку в нем я бы написал за очень короткое время.
Я бьюсь с тем, чтобы Qt у меня выполнил простейшую функцию задержки (а-ля, delay). Так что ваш совет из предыдущего поста: Код: QTimer *timer = new QTimer(this); Беда в том, что я никак не могу "догнать" логику Qt. Читаю, пытаюсь что-то писать, вроде разобрался с сигналами и слотами минимально, но пока самые простейшие шаги идут очень туго. Поэтому не могли бы Вы подробнее написать, как именно завести таймерна слот update виджета MainFr? Надо ли как-то определять timeout() и update()? Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 14, 2013, 00:30 Я подумал, что, может быть, проще выложить проект, который у меня на данный момент получился. Программа выводит ряд прямоугольников в верхней части экрана. Мне необходимо, чтобы прямоугольники рисовались не одновременно, а с небольшой задержкой. Если бы Вы указали, в какой файл мне надо вписать тот код, который Вы приводили, это был бы идеальный вариант.
Название: Re: Развернуть окно Отправлено: Bepec от Июнь 14, 2013, 07:56 Вот вам мини пример с буфером.
https://dl.dropboxusercontent.com/u/62712483/Other/testPaint.zip PS я слаб в графике, можно считать мой дебют. Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 14, 2013, 15:06 Ого! Круто. Это то, над чем я бился почти неделю. У Вас наверное заняло меньше получаса. Да уж, есть, к чему стремиться. Буду сидеть, разбираться в коде. Спасибо большое!
Название: Re: Развернуть окно Отправлено: Bepec от Июнь 14, 2013, 18:14 Минут 5 с помощью темы с этого форума.
PS хвастаюсь :/ Название: Re: Развернуть окно Отправлено: Victor007 от Июнь 14, 2013, 19:31 Верес, спасибо еще раз! Посмотрите, пожалуйста, лс, я отправил Вам сообщение. Сообщите, дошло ли оно, здесь немного странно работает личка. Спасибо!
Название: Re: Развернуть окно Отправлено: Bepec от Июнь 14, 2013, 22:24 Дошло, ответил. Ничуть не странно, просто непривычно :)
|