With the introduction of multi-touch and gesture support coming in Qt, application developers now have the possibility of introducing new types of input and interaction to their applications. We will examine the various types of devices that one can expect to encounter in the multi-touch and gesture "world". This presentation will also introduce and explain the new API, walk through some example code, and show some demos of some of the possibilities we foresee with this technology.
Presentation by Jens Bache-Wiig held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
05 - Qt External Interaction and GraphicsAndreas Jakl
This module explores the remaining aspects of writing own widgets and explains how to handle low-level events, which can originate from for example the mouse or the keyboard. Low level painting, however, can not only be used to draw custom widget - a short overview gives you an idea of the power behind the QPainter class. If your application has to manage multiple graphics items or if you want to build a dynamic UI, the section about the graphics view framework will contain an overview of the classes required to build scene-graph-like user interfaces. At the end of this module, a few slides explain optimizing images, which is important to keep the file sizes and loading times down on mobile devices.
source : http://www.opennaru.com/opensource/kubernetes/
Kubernetes는 컨테이너화된 애플리케이션(Containerized Application)의 배포, 확장 그리고 관리를 할 수 있는 오픈 소스 컨테이너 오케스트레이션 시스템입니다.
쿠버네티스는 구글 엔지니어들이 개발하고 설계한 플랫폼으로서 사내에서 이용하던 컨테이너 클러스터 관리 도구인 “Borg”의 아이디어를 바탕으로 만들어진 오픈소스 소프트웨어입니다.
구글은 쿠버네티스의 원천이 되는 Borg를 수년 동안 개발하고 운영하면서 축적된 경험을 바탕으로 쿠버네티스를 오픈소스 프로젝트로 만들어 었습니다.
05 - Qt External Interaction and GraphicsAndreas Jakl
This module explores the remaining aspects of writing own widgets and explains how to handle low-level events, which can originate from for example the mouse or the keyboard. Low level painting, however, can not only be used to draw custom widget - a short overview gives you an idea of the power behind the QPainter class. If your application has to manage multiple graphics items or if you want to build a dynamic UI, the section about the graphics view framework will contain an overview of the classes required to build scene-graph-like user interfaces. At the end of this module, a few slides explain optimizing images, which is important to keep the file sizes and loading times down on mobile devices.
source : http://www.opennaru.com/opensource/kubernetes/
Kubernetes는 컨테이너화된 애플리케이션(Containerized Application)의 배포, 확장 그리고 관리를 할 수 있는 오픈 소스 컨테이너 오케스트레이션 시스템입니다.
쿠버네티스는 구글 엔지니어들이 개발하고 설계한 플랫폼으로서 사내에서 이용하던 컨테이너 클러스터 관리 도구인 “Borg”의 아이디어를 바탕으로 만들어진 오픈소스 소프트웨어입니다.
구글은 쿠버네티스의 원천이 되는 Borg를 수년 동안 개발하고 운영하면서 축적된 경험을 바탕으로 쿠버네티스를 오픈소스 프로젝트로 만들어 었습니다.
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis
도커 무작정 따라하기
- 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커의 기본 개념부터 설치와 사용 방법까지 설명합니다.
더 자세한 내용은 가장 빨리 만나는 도커(Docker)를 참조해주세요~
http://www.pyrasis.com/private/2014/11/30/publish-docker-for-the-really-impatient-book
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for this webinar to explore the best of QML for mobile, embedded and desktop.
Part III will cover:
- C++ Backends
- Reusing existing code
- Creating QML Modules
This webinar presents the official set of bindings to use Qt's API in your Python application. Using real examples, we will not only implement a beautiful UI, we'll illustrate how it interacts with your regular Python business logic.
With QML there is a new, fantastic way of creating a rich UI for desktop, mobile, and embedded apps. We will go over briefly the history of QML and how you can harness this new language to make your apps easier and faster to develop. We will go over the basics of QML, signals & slots, ways to protect the QML code and also talk about how to use QML with your C++ code. With QML in your tool belt, making Qt applications is quicker to develop and maintain.
QVariant, QObject — Qt's not just for GUI developmentICS
In part II of our Qt for Beginners Summer Webinar Series we will explore how Qt is so much more than just a GUI toolkit. Through two classes, QObject and QVariant, Qt brings us introspection, makes it easier to manage memory in C++ and makes it easier to decouple classes.
Hook me UP ( React Hooks Introduction)Carlos Mafla
What are React Hooks? Why use Hooks? How can I start with useState and useEffect? In this talk you learn about the new Hooks API and how to start using it in your own projects.
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis
도커 무작정 따라하기
- 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커의 기본 개념부터 설치와 사용 방법까지 설명합니다.
더 자세한 내용은 가장 빨리 만나는 도커(Docker)를 참조해주세요~
http://www.pyrasis.com/private/2014/11/30/publish-docker-for-the-really-impatient-book
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for this webinar to explore the best of QML for mobile, embedded and desktop.
Part III will cover:
- C++ Backends
- Reusing existing code
- Creating QML Modules
This webinar presents the official set of bindings to use Qt's API in your Python application. Using real examples, we will not only implement a beautiful UI, we'll illustrate how it interacts with your regular Python business logic.
With QML there is a new, fantastic way of creating a rich UI for desktop, mobile, and embedded apps. We will go over briefly the history of QML and how you can harness this new language to make your apps easier and faster to develop. We will go over the basics of QML, signals & slots, ways to protect the QML code and also talk about how to use QML with your C++ code. With QML in your tool belt, making Qt applications is quicker to develop and maintain.
QVariant, QObject — Qt's not just for GUI developmentICS
In part II of our Qt for Beginners Summer Webinar Series we will explore how Qt is so much more than just a GUI toolkit. Through two classes, QObject and QVariant, Qt brings us introspection, makes it easier to manage memory in C++ and makes it easier to decouple classes.
Hook me UP ( React Hooks Introduction)Carlos Mafla
What are React Hooks? Why use Hooks? How can I start with useState and useEffect? In this talk you learn about the new Hooks API and how to start using it in your own projects.
The next version of Qt adds a framework for defining and executing hierarchical finite state machines in Qt applications. With Qt State Machines you can effectively model how components react to events over time; these state machines are a natural extension to Qt's event-driven programming model. State machines allow you to express the behavior of your application in a more rigid, explicit way, resulting in code that's easier to test, maintain and extend. This session presents the core concepts and functionality of Qt State Machines.
Presentation by Kent Hansen held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Presentation by Marius Bugge Monsen held during Bossa Conference 2010 in Manaus.
Read more at http://labs.trolltech.com
http://qt.nokia.com
http://www.bossaconference.indt.org/
Presented at the Bossa'10 conference in Manaus, Brazil. The presentation talks about the direction in which the Qt widgets are being developed and introduces the idea of Controls to Qt and QML.
Everything you want to know about QWidget, but were afraid to ask. QWidget is the base-class for all Qt's user interface objects. This talk will take an in-depth look at how QWidget works internally and how it interacts with the native windowing system.
Presentation by Marius Bugge Monsen held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
In this webinar (Part IV) we explore how to implement UI and UI behavior with traditional widgets as opposed to QML. As we create a simple widgets applications we will point out the differences with Qt Quick and give rules of thumb of which one to use for a particular project.
UNIT - 4
PART II
AWT EVENT HANDLING
AWT EVENT CLASSES
AWT EVENT LISTENERS
AWT ADAPTER CLASSES
AWT CONTAINERS
AWT LAYOUT MANAGER
AWT MENU CLASSES
MENU CONTROLS
AWT GRAPHICS CLASSES
GRAPHICS
WINDOW FUNDAMENTALS
WORKING WITH FRAME WINDOW
WORKING WITH GRAPHICS
Since the 1980s, Motif has been a popular toolkit for developing graphical desktop applications. Despite its age, legacy applications written using the Motif toolkit are still in production. There are a number of reasons to migrate these applications to newer platforms. Porting Motif applications to the Qt framework can achieve many of the benefits without requiring a total rewrite. In this webinar we'll look at scenarios, strategies, and general advice for porting Motif applications to Qt, based on the wide experience ICS has gained over many Motif to Qt conversion projects.
Since the 1980s, Motif has been a popular toolkit for developing graphical desktop applications. Despite its age, legacy applications written using the Motif toolkit are still in production. There are a number of reasons to migrate these applications to newer platforms. Porting Motif applications to the Qt framework can achieve many of the benefits without requiring a total rewrite.
Introduction to Qt cross-platform application and UI framework. Explaining what Qt does, some historical background, hybrid Internet Applications with Qt Webkit and the future with Qt Quick.
KDE Plasma in your pocket.
Presentation by Alexis Menard held during Bossa Conference 2010 in Manaus.
Read more at http://labs.trolltech.com/blogs/2010/02/28/tokamak-4-the-kde-plasma-meeting/
http://qt.nokia.com
http://www.bossaconference.indt.org/
Shipping Mobile Applications Using Qt for Symbianaccount inactive
Presentation by Espen Riskedal held during Bossa Conference 2010 in Manaus.
Read more at http://labs.trolltech.com/blogs/2010/03/08/hi-from-bossa-conference-and-bossatetrix/
http://qt.nokia.com
http://www.bossaconference.indt.org/
The Qt Script module enables you as a Qt/C++ application developer to seamlessly integrate scripting into your application, providing script authors with an interface for working in the context of your particular Qt application. The Qt Script language is very similar to JavaScript, so many developers and designers should already find it familiar. This session gives an overview of the main steps of embedding Qt Script into an application, and covers some typical patterns of usage.
Presentation by Kent Hansen held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Graphics View becomes one of the prominent features of Qt these days, it also serves as the backbone for next-generation user-interface developments. This talk highlights several tips and tricks which you can employ to beautify your Graphics View-based application, in order to have much more exciting and interesting user interactions. In addition, a new addition in Qt 4.6, namely the graphics effect feature, will be introduced and demonstrated.
Presentation by Ariya Hidayat held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
The Qt WebKit Integration provides a powerful framework to seamlessly integrate web technologies into applications, where web content can interact with Qt components. This presentation introduces the QtWebKit APIs, the underlying engine and new features coming in future releases.
Presentation by Kenneth Christiansen held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Do you consider yourself a Qt expert, but want to learn how to turbo-charge your programming efficiency while using Qt? Join this session and learn from Qt gurus the tips and tricks you need to get the most out of Qt, get more done in less time and generally look better than your co-workers.
Presentation by Mirko Boehm and Till Adam resp. Romain Pokrzywka held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
This talk is an introduction to development of Qt applications for embedded devices running Windows CE. We will show how to build Qt for your device and you will learn how to create your Qt programs on Desktop Windows and cross-compile it for the target device.
Presentation by Jörg Bornemann held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Supporting several languages is a key point to increase the audience of an application. We will see what is needed in Qt to enable internationalization and how to ensure all the components can be translated. We will also see the tools available for the translators and how to use them.
Presentation by Benjamin Poulain held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Are you developing cross-platform applications with Qt, but are missing a cross-platform development environment? Qt Creator is the answer! Get an introduction to the new Qt Creator cross-platform IDE, see the major features in action and learn how to use Qt Creator to code, debug, build and run Qt apps across platforms.
Presentation by Erik Verbruggen held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
The long awaited port of Qt to the Symbian platform is set to be delivered later this year. In addition to being able to target a new platform, application developers will now be able to take advantage of new functionality in Qt to ensure their application integrates seamlessly with the underlying mobile operating system. This session features a brief introduction to the Symbian/S60 platform with a focus on mobile application development using Qt for the Symbian platform.
Presentation by Alessandro Portale held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Qt uses native style APIs on each supported platform, however there are some additional tricks you can use to make sure your Qt-based application looks, feels and behaves better. This presentation will run through examples, tips and ticks to help you make your applications look great on all platforms.
Presentation by Jens Bache-Wiig held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Modern applications are more and more moving away from static forms. In a modern interface, widgets and graphical elements are animated and transitioned smoothly. Those effects make your application look good but their main purpose should be to help end-users find out what's going on in their applications. In upcoming Qt versions we’re adding a new Animation Framework that relies upon Qt’s QObject-based architecture.
Presentation by Thierry Bastian held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)account inactive
With Qt's new open contribution model and the Qt source code repositories open on qt.gitorious.org, contributing your code to Qt is easier than ever before. Learn how to take advantage of this new opportunity by walking through the example of debugging and submitting a bugfix using Gitorious.
Presentation by Simon Hausmann held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
The Qt Mobility project is developing new Qt APIs. These APIs will benefit all Qt developers. This presentation shall provide an overview of the APIs and demonstrate the use of some the APIs through an example application. This presentation shall fuel ideas for usage of the new APIs in your own projects.
Presentation by Alex Luddy held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Weather service, maps and navigation, photo viewer, instant messaging, web browser, flick list or kinetic scrolling. You want all these with Qt? You get it!
Presentation by Ariya Hidayat held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
The Qt Kinetic project is an initiative to provide powerful frameworks to create dynamic, beautiful graphical user interfaces in Qt. As an extension of this effort, the next generation of Qt's item views framework is being designed with animated user interfaces in mind. This talk will give an introduction to the Item Views NG project and the new architecture that is being proposed.
Presentation by Marius Bugge Monsen held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Performance is a key component of usability and crucial for the user experience, especially in today's modern user interfaces where graphical elements are being animated and transitioned. Bringing Qt Everywhere means a significant need for speed across desktop and embedded platforms. This presentation will give you a brief overview of performance improvements done in Qt, and will be highly interactive with hands-on sessions on how to squeeze every last drop of performance out of your Qt application.
Presentation by Bjørn Erik Nilsen held during Qt Developer Days 2009.
http://qt.nokia.com/whatsnew
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Softwareaccount inactive
DAZ 3D strives to bring 3D art to the masses by delivering the highest quality 3D digital content and software at the most affordable prices. DAZ Studio is a free, feature rich 3D figure design and 3D animation tool that enables anyone to create stunning digital imagery. This is the perfect tool to design unique digital art and animation using virtual people, animals, props, vehicles, accessories, environments and more. In April of 2004, DAZ started the Public Beta release stage of development for DAZ Studio after two years of development. In June 2009, DAZ Studio v3.0 was released both as a free version and a monetized advanced version. This presentation will explain why Qt was originally selected, what benefits have been realized from it’s use in DAZ Studio, and what DAZ 3D’s experience has been in porting there app from Qt3.3 to Qt4.5. Specific topics will include scripting implementation, cross-platform compatibility, UI versatility, upgrade porting issues/experiences, benefits of the 4.5 opensource version, and styling benefits.
Presentation by Tyson Ratliff and Jarom Schow held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
6. Concepts
A widget reacts to multiple touch-points
For example, to zoom/scale content...
Lorem ipsum dolor sit Lorem ipsum dolor
eamt. Dolore magna
aliquam erat volupat. Ut sit eamt. Dolore
enim ad minimum magna aliquam
veniami quis. Duis sutem
vel eum irure dolor in
erat volupat...cvc
rerit laputum
6
7. Concepts
Multiple widgets react to multiple touch-points
For example, moving several sliders at once...
7
8. Concepts
Real life is multi-touch
Do you open a bottle with one finger?
Applications could do it too...
1
2
8
13. Concepts
A way to make common multi-touch use-cases
easy to use in your application
• Standard, platform-specific touch-based gestures
• Extensible API for custom gestures
13
14. Concepts
What are standard gestures?
• Built-in multi-touch gestures that work in standard Qt
widgets
14
15. Concepts
Pan gesture
• Scrolls content
• Works in all scrollable Qt widgets
Lorem ipsum dolor sit Ut enim ad minimum
eamt. Dolore magna veniami quis. Duis sutem
aliquam erat volupat. vel eum irure dolor in
Ut enim ad minimum rerit laputum
veniami quis. Duis
sutem vel eum irure
dolor in rerit laputum
15
21. API
QEvent::TouchEnd
• Final event in sequence
• No more events without a new TouchBegin
21
22. API
TouchBegin propagation
• When ignored, propagate to widget under first touch-
point
• Widgets never receive multiple TouchBegin
• New touch-points on children are combined with first
touch-point
1 1 2
One event, one point, to grey widget One event, two points, to grey widget
22
24. API
QTouchEvent
• Event class for QWidget and QGraphicsItem
• Contains list of active touch points
• Device type – TouchScreen or TouchPad
24
25. API
QTouchEvent::TouchPoint
• Information about one touch-point
• Integer identifier
• Primary touch-point flag
• State - Pressed, Moved, Stationary, or Released
• Current, previous, starting positions
• Local, scene, screen, normalized translations
• Area, pressure (if supported by device)
25
26. API
Touch events are not sent by default
• Must be enabled first
• When enabled, TouchBegin event will be accepted
unless explicitly ignored
26
27. API
Qt::WA_AcceptsTouchEvents
• Set on QWidget to receive touch events
• To handle events, reimplement QWidget::event()
• Default implementation emulates mouse events for first
non-primary touch-point
• Set on viewport() of QAbstractScrollArea based
widgets
• To handle events, reimplement
QAbstractScrollArea::viewportEvent()
27
29. API
Gestures
• QGesture and QGestureRecognizer classes
• Widgets subscribe to gestures
• Using standard gestures
• Implementing custom gestures
29
30. API
QGesture
• Base class for more complex gestures
• Basic properties and convenience functions
• Delivered to QWidget or QGraphicsObject
• State (Started, Updated, Finished, Canceled)
QGestureEvent
• Contains a list of QGestures
• Normal event propagation rules apply
30
31. API
QGestureRecognizer
• “Just” an event filter + state machine
• Registered in QApplication
• Announces when a gesture is triggered
31
32. API
How do I use a gesture?
• Use grabGesture() to request it
• Handle the QGestureEvent and get:
QPanGesture
- Offset property
QPinchGesture
- Center-point, rotation, scale properties
32
33. API
Implementing custom gestures
• Create a state machine:
- subclass QGestureRecognizer
- implement filterEvent(), createGesture(), reset()
• Create a gesture object:
- subclass QGesture (optional)
- fill QGesture with properties
33
34. API
Gestures can be simple : Four finger tap
class FourFingerTapGesture : public QGestureRecognizer
{
virtual Result filterEvent(QGesture *, QObject *, QEvent *event)
{
if (event->type() == QEvent::TouchUpdate)
if (static_cast<QTouchEvent *>(event)->touchPoints.size() == 4)
return GestureFinished;
return Ignore;
}
};
34
35. API
Gestures can be complex
• Event filter could implement a state machine
• Continuous gesture going through Qt::GestureStated
to Qt::GestureUpdated to Qt::GestureFinished
states.
• Gesture may need to hijack events, store them, and
replay them later
35
37. API
Single gesture on parent widget with children
• Should the parent's gesture filter events for children?
GestureContext
• widget-only gesture
• widget-with-children gesture
37
38. API
Multiple gestures on a single widget
• All gestures filter incoming events in undefined order
• Ignored gestures will be propagated
• You can partially ignore a gesture:
bool gestureEvent(QGestureEvent *event) {
event->ignore(Qt::PanGesture);
event->accept(Qt::PinchGesture);
return true;
}
38
39. API
Gesture has priority over normal event
handling
• Gesture may need several events before
starting
• Normal event handling interferes with
gesture
• Events should be delayed
39