Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Graafisia Python-ohjelmia Easyguilla

Sivun loppuun

aqman [16.08.2015 09:48:27]

#

Todella helppoa verrattuna esim. Tkinterin käyttöön, joten laitoin esimerkkiohjelman tänne niin siitä voi olla hyötyä muillekkin. Easyguin pitää tietenkin olla asennettuna, asennusohjeet ja lataus täältä:
http://easygui.sourceforge.net/sourceforge_site_as_of_2014_11_21/download/version_0.96/index.html
ja lisää ohjeita:
http://www.ferg.org/easygui/tutorial.html

Sitten koodaamaan. Tässä on Python 3:lla kirjoitettu esimerkkiohjelma, joka arvaa, mitä lukua käyttäjä ajattelee.

try: import easygui
except ImportError: print("Virhe! Asenna easygui ja yritä uudelleen.")
title = "Arvauspeli"

msg = "Tervetuloa arvauspeliin! Valitse positiivinen kokonaisluku ja pidä se mielessä pelin ajan."
if easygui.buttonbox(msg,
                     title = title,
                     choices = ["Pelaamaan!", "Peruuta"]) == "Peruuta":
    exit()

arvauksia = 0
arvaus = 16
edelliso = 0
isompi = True
valmis = False

while not valmis:
    msg = "Onko se " + str(arvaus) + "?"
    valinta = easygui.buttonbox(msg,
                                title = title,
                                choices = ["Kyllä!", "Suurempi", "Pienempi"])
    if valinta == "Suurempi":
        edelliso = arvaus
        pienin = arvaus
        if isompi:
            isoin = 3 * arvaus
    if valinta == "Pienempi":
        isompi = False
        isoin = arvaus
        pienin = edelliso
    arvauksia += 1
    try: arvaus = int((pienin + isoin) / 2)
    except NameError: pass
    if valinta == "Kyllä!":
        if arvauksia == 1:
            msg = "Hienoa! Siihen tarvittiin 1 arvaus."
        else:
            msg = "Hienoa! Siihen tarvittiin "+ str(arvauksia) + " arvausta."
        easygui.msgbox(msg)
        valmis = True

Oskuz [16.08.2015 13:20:47]

#

Näyttää ihan kivalta, että tästä olisi varmaan ollut koodivinkiksikin.

peran [16.08.2015 15:43:05]

#

Koodin alkuun voisi laittaa seuraavaa, mikäli käyttää Linuxia.

#!/usr/bin/python

Ja merkistökoodaus...

# -*- coding: utf8 -*-

aqman [16.08.2015 15:54:27]

#

peran: Käytän Linuxia ja toimii ihan hyvin päätteellä, IDLEllä ja Windows XP-virtuaalikoneella ajettuna. Python 3:ssa merkistöongelmia on yleensä vähemmän kuten ohjelmointiputkan oppaankin loppuosa sanoo: https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=python_l2

peran [16.08.2015 16:00:52]

#

Näyttääkin toimivan python3:lla, muttei toiminut itselläni oletuksena olevalla python2:lla ilman kyseisiä muutoksia. (Olitkin ilmoittanut, että kyseinen toimii python3:lla.)

Edit - Mutta tosiaan, kyseinen olisi ihan kiva koodivinkki.

aqman [16.08.2015 16:28:38]

#

Mietinkin, että kannattaako se laittaa koodivinkkeihin vai keskusteluun. Laitoin sen tänne, koska täälläkin saa esitellä omia ideoita ja ohjelmia.
peran: käytätkö Linuxia? Voit ajaa Python 3-ohjelmia kirjoittamalla päätteeseen:

python3 /ohjelman_sijainti/ohjelman_nimi/

Voit myös asentaa IDLEn Linuxille ohjelmistohallinnasta, pakettienhallinnasta tai mitä distrossasi sattuukaan olemaan.

peran [16.08.2015 18:45:16]

#

aqman kirjoitti:

peran: käytätkö Linuxia? Voit ajaa Python 3-ohjelmia kirjoittamalla päätteeseen:

python3 /ohjelman_sijainti/ohjelman_nimi/

Joo, silleen testasin, ja huomasin toimivaksi, kuten ilmoitin edellisessä viestissäni.

aqman kirjoitti:

Voit myös asentaa IDLEn Linuxille ohjelmistohallinnasta, pakettienhallinnasta tai mitä distrossasi sattuukaan olemaan.

Käytän sen verran vähän Pythonia, että pärjäilen kate:lla.

aqman [16.08.2015 19:45:19]

#

On ehdoteltu että tekisin tästä koodivinkin. Mielestäni koodivinkiksi sopisi ohjelma, joka esittelisi eri toimintoja joita yhdessä esimerkissä on hankalaa käyttää, esim. gif-kuvan liittäminen buttonboxiin. Siihen voisi vaikka laittaa linkin tälle sivulle. Toivottavasti saan sen valmiiksi tänään.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta