QT tyylit. Juha Järvensivu 2008

Samankaltaiset tiedostot
CSS-kielen avulla määritellään HTML-dokumentin tyyli. CSS avulla voidaan tarkemmin määritellä eri elementtien ominaisuuksia.

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

Kuvat. 1. Selaimien tunnistamat kuvatyypit

QT framework. Juha Järvensivu 2007

valitsin on useimmiten html-elementti, jolle tyyli halutaan luoda

Taulukot. 1. Taulukon rakenne: ICT01D Elina Ulpovaara

Ulkopuolisen tyylitiedoston käyttö

Ulkoasun muokkaus CSS-tiedostossa

Kotisivujen teko. Jan Lindholm Kirkkonummen kansalaisopisto Syksy koodari.eu jsbin.com

CSS. Tekstin muotoilua

QT model view. Juha Järvensivu 2008

Graafisen käyttöliittymän ohjelmointi Syksy 2013

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Digitaalisen median tekniikat css tyylimääritykset jatkuu

Digitaalisen median tekniikat css tyylimääritykset jatkuu Harri Laine 1

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Digitaalisen median tekniikat. Luento 3: CSS

CSS aloitus. CSS Cascade Stylesheet Mirja Jaakkola

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

Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.

Cascading Style Sheets

Editorin käyttö. TaikaTapahtumat -käyttöohje

CSS - aloitus. ICT01D syksy 2005 Mirja Jaakkola, Helia. Ulkopuolisen tyylitiedoston käyttö

Graafisen käyttöliittymän ohjelmointi

1. Lohkon korkeus ja leveys

Digitaalisen median tekniikat css tyylimääritykset

Digitaalisen median tekniikat css tyylimääritykset Harri Laine 1

Dialogit. Juha Järvensivu 2008

WWW-sivujen Verkkosivujen ulkoasu (CSS)

CSS - tyylit Seppo Räsänen

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Graafisen käyttöliittymän ohjelmointi Syksy 2013

HTML-ohjeet. Sivun perusrakenne <HTML> <HEAD> <STYLE TYPE="text/css"> ...tänne tulee CSS-koodi eli sivun ulkonäkö määritykset...

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Lisätehtävät. Frantic 2015 sivu 1

T Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

1 Dreamweaver MMX. 2 Tekstin muokkaus

Ajatus kaiken taustalla

Dialogit. Juha Järvensivu 2007

TYYLIT. Word Tyylit

Valikot ja työkalupalkit. 2008

Olio-ohjelmointi Javalla

Asemointi. 1. Lohkon korkeus ja leveys

TIE Ohjelmistojen suunnittelu. Luento 3: käyttöliittymien toteutustekniikat, QML

Aulikki Hyrskykari. CSS Taustaa CSS syntaksi CSS Valitsimet Kuvat verkkosivulla

CSS tyyliä sivuihin osa II. Elina Ulpovaara

Navigointi Verkkomultimedia ICT1tn004

selector { CSS property: value; property2: value; Code Camp for Girls Sonja Jaakkola & Sanna Nygård

Kotisivut helposti - osa 3

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

Kehittyneet ominaisuudet

C# ja.net. Juha Järvensivu 2007

Windowsin sanomanvälitys. Juha Järvensivu 2007

Kitchen Pendant 2/10/19

Jypelin käyttöohjeet» Ruutukentän luominen

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä

Jypelin käyttöohjeet» Ruutukentän luominen

Katsotaan tarkemmin seuraavaksi: Reunus (border) Täyte (padding) Marginaali (margin)

Java layoutit. Juha Järvensivu 2007

Digitaalisen median tekniikat css tyylimääritykset

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

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Verkkosivujenulkoasu

Code Camp for Girls. Sanna Nygård. Lokakuussa

Periytyminen (inheritance)

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Rajapinta (interface)

9. Periytyminen Javassa 9.1

XNA grafiikka laajennus opas. Paavo Räisänen. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.

Ohjelmoinnin peruskurssien laaja oppimäärä

Käsiteltävät asiat LIITE 2 1. Tehtävänä on mallintaa keilarata ohjeiden mukaan. MassFX Boolean Lathe

WWW-sivujen Verkkosivujen ulkoasu (CSS)

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Graafisen käyttöliittymän ohjelmointi

Sovelmat. Janne Käki

Metodien tekeminen Javalla

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

JUnit ja EasyMock (TilaustenKäsittely)

Graafisen käyttöliittymän ohjelmointi Syksy 2013

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

Opinnäytetyö Toni Hurskainen Porin ammattiopisto / Tekniikkaopisto Sähköala TT03

4 Johdanto CSS-tyyleihin

4 Johdanto CSS-tyyleihin

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

TAULUKOINTI. Word Taulukot

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGISohjelmistossa

GTK+ ohjelmointi. Juha Järvensivu 2007

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Johdatusta selainohjelmointiin

Attribuutit. Copyright IT Press Tämän e-kirjan kopiointi, tulostaminen ja jakeleminen eteenpäin luvatta on kielletty.

Kotisivut helposti - osa 4

Tulostinajurin ja paperikoon konfigurointiohjeet AutoCad ohjelmille


Racket ohjelmointia II. Tiina Partanen 2015

Sisällysluettelo T A R R A O P A S

Kaksiloppuinen jono D on abstrakti tietotyyppi, jolla on ainakin seuraavat 4 perusmetodia... PushFront(x): lisää tietoalkion x jonon eteen

Tapahtumapohjainen ohjelmointi

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

Transkriptio:

QT tyylit Juha Järvensivu juha.jarvensivu@tut.fi 2008

Sisällys QStyle Style sheet

Tyyli (QStyle) Kapseloi widgettien Look And Feel ominaisuudet Toteutettu QT:ssa QStyle luokkaan Sisäänrakennettuja tyylejä QWindowsStyle, QWindowsXPStyle, QWindowsVistaStyle QMacStyle, QMotifStyle QPlastiqueStyle

PlastiqueStyle (KDE tyyli)

QMotif style (oletus unix-ympäristössä)

Windows style (oletus windows-ympäristössä)

WindowsXP style (vain Windows XP)

Tyylin asettaminen Ohjelmallisesti QApplication::setStyle(QStyle* style); [static] Komentoriviltä myapplication -style motif QApplication::setStyle(new QWindowsStyle);

Yleistä Tyylin vaihto toiseen mahdollista ohjelman ajon aikana Vain yksi tyyli kerrallaan käytössä Tyylejä voidaan periyttää

Tyylin toteutus pluginina MySovellus.exe MyStyle.dll

QStylePlugin Abstrakti kantaluokka tyylipluginille Mahdollistaa pluginin lataamisen dynaamisesti class MyStylePlugin : public QStylePlugin { public: QStringList keys() const; QStyle *create(const QString &key); };

QStylePlugin #include "mystyleplugin.h" QStringList MyStylePlugin::keys() const { return QStringList() << "MyStyle"; } QStyle *MyStylePlugin::create(const QString &key) { if (key.tolower() == "mystyle") { return new MyStyle; } return 0; } Q_EXPORT_PLUGIN2(pnp_mystyleplugin, MyStylePlugin)

Tyyli pluginin käyttöönotto Tyyli-plugini ladataan ja otetaan käyttöön factory-luokan avulla QStyleFactory Style factory etsii tyyli pluginia styles alihakemistosta C:\Program Files\MyApp\styles QApplication::setStyle(QStyleFactory::create("MyStyle"));

Tyylin periyttäminen class CustomStyle : public QWindowsStyle { Q_OBJECT public: CustomStyle() ~CustomStyle() {} void drawprimitive( PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget ) const; };

PrimitiveElement Kertoo piirrettävän widgetin tyypin (Esim checkbox tai painike) QStyle::PE_PanelButtonCommand QStyle::PE_IndicatorCheckBox

QStyleOption Sisältää QStylen piirrossa tarvitsemat parametrit Paletti Rect fontmetrics Layout direction QStyleOptionButton Teksti Ikoni

QPalette Sisältää väritarvot widgetin eri tiloille ColorGroup (disable, active, inactive, normal) ColorRole QPalette::Window (ikkunan taustaväri) QPalette::WindowText (tekstin väri) QPalette::Button (painikkeen taustaväri) QPalette::Highlight (valittu kenttä) Jne

Tyylin avulla piirtäminen void MyWidget::paintEvent(QPaintEvent * /* event */) { QPainter painter(this); QStyleOptionFocusRect option; option.initfrom(this); option.backgroundcolor = palette().color(qpalette::background); style()->drawprimitive(qstyle::pe_framefocusrect, &option, &painter, this); }

Esimerkki http://doc.trolltech.com/4.2/widgetsstyles.html

QStyle::Polish(QWidget* pwidget) Kutsutaan jokaiselle widgetille kerran ennen kuin se piirretään ensimmäistä kertaa ruudulle setbackgroundmode

QStyle::Polish(QPalette & palette) Tyyli voi muuttaa paletin arvoja ennen widgettien piirtoa Esim Tekstuurin / taustan asettaminen QBrush::QBrush ( const QImage & image ) QBrush::QBrush ( const QGradient & gradient )

Style sheets

Style sheets (qss) Vaihtoehtoinen mekanismi, jolla voidaan kustomoida widgettien ulkoasua vrt: CSS web-sivujen toteutuksessa QApplication::setStyleSheet(const QString & sheet);

Qss-tiedosto QPushButton { background-color: palegoldenrod; border-width: 2px; border-color: darkkhaki; border-style: solid; border-radius: 5; padding: 3px; min-width: 9ex; min-height: 2.5ex; } QComboBox, QLineEdit, QSpinBox, QTextEdit, QListView { background-color: cornsilk; selection-color: #0a214c; selection-background-color: #C19A6B; }

Style rules CSS syntaksi tietyin lisäyksin Valitsin { Ominaisuus: Arvo; } Alignment { top bottom left right center }

Selector types Universal selector * = matches to all widgets Type selector QPushButton = Matches instances of QPushButton Property selector QPushButton[flat = false ] = QPushButton that are not flat ID selector QPushButton#okButton = QPushbutton whose object name is okbutton

Dynamic properties *[mandatoryfield="true"] { background-color: yellow } QLineEdit *emailedit = new QLineEdit(this); emailedit->setproperty("mandatoryfield", true); QSpinBox *agespinbox = new QSpinBox(this); agespinbox->setproperty("mandatoryfield", true);

Box model

Esimerkki: QPushbutton

Esimerkki QPushButton#evilButton { background-color: red; border-style: outset; border-width: 2px; border-color: beige; }

QPushButton#evilButton { background-color: red; border-style: outset; border-width: 2px; border-radius: 10px; border-color: beige; font: bold 14px; min-width: 10em; padding: 6px; } Esimerkki

Esimerkki QPushButton#evilButton { background-color: red; border-style: outset; border-width: 2px; border-radius: 10px; border-color: beige; font: bold 14px; min-width: 10em; padding: 6px; } QPushButton#evilButton:pressed { background-color: rgb(224, 0, 0); border-style: inset; }

Lähteet Throlltech http://trolltech.com/products/qt How to create style plugin http://doc.trolltech.com/4.4/plugins-howto.html QT Style sheets http://doc.trolltech.com/4.4/stylesheet.html CSS http://fi.wikipedia.org/wiki/css