Название: Круглая кнопка через OpenGL? Отправлено: SektorCT от Февраль 28, 2016, 12:01 Всем привет.
Надеюсь на совет по моей проблемме. нужно в QT приложении создать круглый таймер, то есть типа круглой кнопки края которйо имеют какую то заданную толщину. Этот край имеет цвет. Мы задаем какое то время и оно начинает сменой одного цвета на другйо отсчитывать время. Так же с внутренней стороны имеются засечки как на обычных чисах. Внутри этого таймера имеется уже отображение времени обычными цифрами. Так же этот таймер имеет свойство нажатия кнопки, нажали и отсчет остановился. Вопрос, можно ли создать такой таймер путем QT или все таки это нужно рисовтаь полностью через OpenGL? Просьба, те кто сталкивался с чем то подобным или имеется информация, поделитесь пожалуйста. P.S. пробвоал обычную QPushButton сделать круглой через QRegion(*rect,QRegion::Ellipse) но он убирает активные области в углах кнопки, но по сути кнопка так и остается прямоугольной края которой невидны. Название: Re: Круглая кнопка через OpenGL? Отправлено: Bepec от Февраль 28, 2016, 16:42 Берём математику, получаем формулу попадания в круг. Наследуемся от кнопки. Рисуем на основании данных круг, в зависимости от времени рисуем кромку и рисочки внутри. Так же рисуем три состояния от нажатия кнопки. Финита?
Название: Re: Круглая кнопка через OpenGL? Отправлено: SektorCT от Февраль 28, 2016, 17:38 Берём математику, получаем формулу попадания в круг. Наследуемся от кнопки. Рисуем на основании данных круг, в зависимости от времени рисуем кромку и рисочки внутри. Так же рисуем три состояния от нажатия кнопки. Финита? Благодарю за информацию. Только она слишком поверхносна. У меня по сравнению с вами как вижу опыта на много меньше. Могли бы по виджетам немного поподробнее обьяснить? Название: Re: Круглая кнопка через OpenGL? Отправлено: Bepec от Февраль 28, 2016, 17:59 Смотря что именно вам неясно.
Рисование происходит в функции paintEvent, отслеживание нажатие в ф-циях mousePressEvent и mouseReleaseEvent. Задавайте вопросы, отвечу в мере своих сил. Название: Re: Круглая кнопка через OpenGL? Отправлено: Fat-Zer от Февраль 28, 2016, 21:31 отслеживание нажатие в ф-циях mousePressEvent и mouseReleaseEvent. поправлю, сюда скорей всего лезть не придётся, там QAbstractButton делает всё, а будет достаточно hitButton().Название: Re: Круглая кнопка через OpenGL? Отправлено: SektorCT от Февраль 29, 2016, 13:16 Смотря что именно вам неясно. Рисование происходит в функции paintEvent, отслеживание нажатие в ф-циях mousePressEvent и mouseReleaseEvent. Задавайте вопросы, отвечу в мере своих сил. Попробую сейчас обьяснить. Я не совсем понимаю что будет за обьект на котором края будут по цвету перерисовыватся по времени. и то что в центре показывается время и при этом это все идет как кнопка мне тоже непонятно( Посоветовали что нужно просто виджет сделать круглым, потмо в центр его засунуть кнопку. Но будет ли это все работать как цельынй обьект? Наверное надо для этого все в один класс запихать. Только вот не знаю пока с чего и начинать потому что кто то говорит что это будет работать а кто то говорит что не будет и надо по другому, а как непонятно. Как писал я, опыта очень мало и не знаю с чем работать(. Название: Re: Круглая кнопка через OpenGL? Отправлено: Igors от Февраль 29, 2016, 15:04 OpenGL здесь совершенно ни при чем. Просто наследник QPushButton с перекрытыми paintEvent и hitButton, Напр на OSX кнопки закругленные и если нажать "в уголок" - ничего не произойдет. В общем, Вы напрасно терзаетесь в сомнениях :)
|