Leikepöydän käyttö.net ja QT. Juha Järvensivu 2008

Samankaltaiset tiedostot
Graafisen käyttöliittymän ohjelmointi Syksy 2013

Sarjallistaminen. Juha Järvensivu 2007

Rajapinta (interface)

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Tiedostonkäsittely ja asetusten tallentaminen. Graafisen käyttöliittymän ohjelmointi Luento 14

QT model view. Juha Järvensivu 2008

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Olio-ohjelmointi Javalla

Listarakenne (ArrayList-luokka)

C# ja.net. Juha Järvensivu 2007

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Metodien tekeminen Javalla

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

10 Lock Lock-lause

Mikä yhteyssuhde on?

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Suunnittelumalleja, MVC. Juha Järvensivu 2008

Graafisen käyttöliittymän ohjelmointi

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

812336A C++ -kielen perusteet,

QT tyylit. Juha Järvensivu 2008

Interaktiivinen käyttöliittymä. 2008

Luokan sisällä on lista

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

1. Mitä tehdään ensiksi?

5 Näppäimistö. 5.1 Näppäimistön eventit

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

UML ja luokkien väliset suhteet

Tapahtumapohjainen ohjelmointi

YHTEYSSUHDE (assosiation)

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

8. Näppäimistöltä lukeminen 8.1

Hiirisanomiin vastaaminen. 2007

Graafisen käyttöliittymän ohjelmointi

Climecon MagiCADliitosohjelma

Ohjelmoinnin perusteet, kurssikoe

Valikot ja työkalupalkit. 2008

Web Services tietokantaohjelmoinnin perusteet

C++11 seminaari, kevät Johannes Koskinen

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

15. Ohjelmoinnin tekniikkaa 15.1

Dialogit. Juha Järvensivu 2007

1 Tehtävän kuvaus ja analysointi

Testivetoinen ohjelmistokehitys

Ohjelmoinnin jatkokurssi, kurssikoe

Microsoft Visual Studio 2005

Ohjelmointi 2 / 2010 Välikoe / 26.3

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

16. Javan omat luokat 16.1

TIETORAKENTEET JA ALGORITMIT

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Tilastokeskuksen rajapintapalveluiden käyttöönotto ArcGISohjelmistossa

Java UI-komponentit (JTable) Juha Järvensivu 2007

GPRS-lisäpalvelu INTERNET-ASETUKSET

8. Näppäimistöltä lukeminen 8.1

Luokat ja oliot. Ville Sundberg

TEHTÄVÄ 1.1 RATKAISUOHJEET

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

2. Olio-ohjelmoinista lyhyesti 2.1

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Periytyminen (inheritance)

2010-luvun kansalaistaito: Windows-puhelimen ohjelmointi. Kai Lindgren, Teollinen tuotanto/metropolia

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

9. Periytyminen Javassa 9.1

Lista luokan sisällä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Luokan muodostimet (Constructors)

Dialogit. Juha Järvensivu 2008

Sisältö. 2. Taulukot. Yleistä. Yleistä

15. Ohjelmoinnin tekniikkaa 15.1

Javan perusteita. Janne Käki

C# Windows ohjelmointi perusopas

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

REST rajapintana mobiilikehityksessä

4. Olio-ohjelmoinista lyhyesti 4.1

Java-API, rajapinnat, poikkeukset, UML,...

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Metodien tekeminen Javalla

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

18. Abstraktit tietotyypit 18.1

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Java kahdessa tunnissa. Jyry Suvilehto

Osio2: Taulukot Jukka Juslin

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Demo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl;

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

RINNAKKAINEN OHJELMOINTI A,

Graafisen käyttöliittymän ohjelmointi Syksy 2013

public static void main (String [] args)

Qt perusteet. Juha-Matti Vanhatupa. (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia)

Kehittyneet ominaisuudet

Transkriptio:

Leikepöydän käyttö.net ja QT Juha Järvensivu juha.jarvensivu@tut.fi 2008

Sisältö Leikepöydän toiminta.net toteutus + esimerkki QT - toteutus

Yleistä

Leikepöytä (Clipboard) Keino siirtää tietoa nopeasti prosessien välillä tai ohjelman sisällä Leikepöytä Copy Paste

Toiminnot Kopiointi (Copy) Kopioi valitun objektin leikepöydälle Leikkaaminen (Cut) Kopioi valitun objektin leikepöydälle ja poistaa alkuperäisen Liittäminen (Paste) Kopioi leikepöydän sisällön valittuun paikkaan

Leikepöydän käyttö Leikepöydälle voi asettaa saman datan useana eri tyyppinä Esim Sovellus itse käsittelee Data-objekteja, mutta Paint-sovellus käsittelee Bitmaptyyppisiä olioita.

Leikepöydän käyttö Datatyypit Data Kuvaa Ääntä Tekstiä

Leikepöydän käyttö Leikepöytä Bitmap Paste Bitmap Data Data Copy Paste

.NET

Clipboard Namespace: System.Windows.Forms Assembly: system.windows.forms.dll Luokka, jonka avulla voidaan asettaa ja lukea tietoa leikepöydältä public sealed class Clipboard

Clipboard [S] bool ContainsData [S] bool ContainsAudio [S] bool ContainsImage [S] bool ContainsText [S] Get/SetData [S] Get/SetAudio [S] Get/SetImage [S] Get/SetText [S] Get/SetDataObject

DataObject Mahdollistaa datan asettamisen leikepöydälle useassa formaatissa DataObject o = new DataObject(); ArrayList data = new ArrayList(); Bitmap bm = new Bitmap(10,10); o.setdata("data", data); o.setdata(dataformats.bitmap, bm);

SetData public static void SetData ( string format, Object data ) Parameters format The format of the data to set. See DataFormats for predefined formats. data An Object representing the data to add.

Bitmap Html MetaFilePict PenData Text WaveAudio UnicodeText Jne DataFormats

Datan asettaminen leikepöydälle Työpöydälle asetettava objekti pitää olla sarjallistuva Serializable public static void SetDataObject ( Object data, bool copy )

Datan asettaminen leikepöydälle private void Copy () { DataObject o = new DataObject(); Bitmap bm = GetBitmap(); ArrayList data = GetData(); o.setdata("data", a); o.setdata(dataformats.bitmap, copytoimage()); } Clipboard.SetDataObject(o);

Datan lukeminen leikepöydältä private void Paste () { IDataObject o = Clipboard.GetDataObject(); ArrayList a = (ArrayList)o.GetData("data"); }

Esimerkki

QT

QClipboard QT:luokka windowsin leikepöydän käsittelyyn settext() setpixmap() setmimedata() QClipboard *clipboard = QApplication::clipboard();

QMimeData Voi sisältää saman data useassa eri formaatissa QStringList formats(); // list of mime types Datan kysyminen binäärimuodossa QByteArray data(qstring mimetype);

Esimerkki // Datan kirjoittaminen QByteArray itemdata; QMimeData *mimedata = new QMimeData; mimedata->setdata("image/x-puzzle-piece", itemdata); // Datan lukeminen QMimeData *mimedata if (mimedata->hasformat("image/x-puzzle-piece") { QByteArray piecedata = mimedata->data("image/xpuzzle-piece"); }

MIME data Multipurpose Internet Mail Extensions Standardi joka kertoo sisällön tiedostonmuodon text/plain; charset=iso-8859-1 application/octet-stream

Clipboard mode QClipboard::Clipboard QClipboard::Selection (X11) QClipboard::FindBuffer (Mac OS)

Clipboard - signaalit void changed ( QClipboard::Mode mode ) Kutsutaan kun data leikepöydällä muuttuu void datachanged () Kutsutaan kun data leikepöydällä muuttuu clipboard changes made by other applications will only be detected when the application is activated. void findbufferchanged () Kutsutaan kun find buffer muuttuu (vain Mac OS) void selectionchanged () Ei tukea windows tai MAC ympäristöissä

Lähteitä Clipboard http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpref/html/frlrfsystemwindowsformsclipboardclasstopic.asp Placing data on clipboard http://msdn.microsoft.com/library/default.asp?url=/library/enus/vbcon/html/vbtskplacingdataonclipboard.asp Retrieve information from clipboard http://msdn.microsoft.com/library/default.asp?url=/library/enus/vbcon/html/vbtskretrievinginformationfromclipboard.asp MIME http://fi.wikipedia.org/wiki/mime-tyyppi http://www.iana.org/assignments/media-types/