Réseau CPC BIENDEBUTER.NET Crunchez vos adresses URL
|
Calculez la conso électrique de votre PC
|
Hébergez vos photos
+ Reply to Thread
Page 191 of 191 FirstFirst ... 91 141 181 183 184 185 186 187 188 189 190 191
Results 5,701 to 5,709 of 5709
  1. #5701
    Pour les besoins de mon boulot, je vais développer un logiciel desktop. En python (haters gonna hate).
    Ce qui est intéressant, c'est la bibliothèque que je vais utiliser : kivy.
    Ça fait un moment qu'elle me fait de l'oeil, mais je n'ai pas encore eu le temps de la tester. Ça sera l'occasion.
    Jusqu'à aujourd'hui, j'utilisais Qt (via le binding pyside). Qui est très bien (quoi que la documentation est un peu confuse, mais on s'y habitue, j'ai déjà vu pire), mais un peu trop overkill et verbeuse pour mon besoin (c'est vraiment des besoins très simple. Afficher une arborescence, et effectuer des actions diverses et variés sur les noeuds ou sur la racine. Cette arborescence est une abstraction de fichiers divers et variés sur le disque).

    Kivy me fait de l'oeil surtout pour son coté "pythonesque" et ses fichiers de descriptions des interfaces, qui ressemble à un mélange entre yaml et python. En ce moment, je commence aussi mon passage de python 2.7 -> 3.x. Un bon prétexte pour développer uniquement en vue de python3.
    La documentation, je l'ai pas mal survolé et ça m'a l'air clair et bourré d'exemples simple et un peu plus complexe (sans jamais être inutilement verbeux). Je verrais à l'utilisation réelle, mais la documentation est vraiment un gros point fort et est très bien. À priori, ça a la même qualité que les documentations requests/flask/jinja (et tout ce qui a été fait de près ou de loin par la poocoo-team).

    Qt propose un logiciel pour faire le descriptif de la gui, mais c'est vraiment très complexe. On s'y habitue, mais j'aime bien la simplicité des fichiers de descriptions de kivy.

    À noter que les logiciels fait à partir de kivy sont portable android. Dans mon cas, je m'en fous (c'est à destination windows/linux et peut-être mac, mais pour ce dernier, c'est loin d'être sur). Mais c'est toujours bon à savoir.


    Je ferais un retour après avoir fini mon logiciel, pour voir si mon à priori très positif sur cette bibliothèque est justifié.
    J'ai raison et vous avez tort.

  2. #5702
    Je vais en faire gueuler certains, mais niveau interface pour Python, vous devriez pouvoir utiliser le XAML via Iron Python. La doc est ultra fournie sur le XAML, et ça permet de développer des interfaces très soignées sans se prendre trop la tête comme avec QT.

  3. #5703
    MVVM et GUI descriptive (avec data binding) > all

    T'façon dans 5 ans on fera tous du web embarqué, alors faites comme moi partez sur AngularJS.

  4. #5704
    Exemple d'un pong (tirée d'ici pour kivy et tirée d'ici pour xaml). Ils ne sont pas équivalent, mais peu importe, c'est pas l'essentiel.
    D'un coté, j'ai un descriptif type:
    Code:
    #:kivy 1.0.9
    
    <PongBall>:
        size: 50, 50 
        canvas:
            Ellipse:
                pos: self.pos
                size: self.size          
    
    <PongPaddle>:
        size: 25, 200
        canvas:
            Rectangle:
                pos:self.pos
                size:self.size
    
    <PongGame>:
        ball: pong_ball
        player1: player_left
        player2: player_right
        
        canvas:
            Rectangle:
                pos: self.center_x-5, 0
                size: 10, self.height
        
        Label:
            font_size: 70  
            center_x: root.width / 4
            top: root.top - 50
            text: str(root.player1.score)
            
        Label:
            font_size: 70  
            center_x: root.width * 3 / 4
            top: root.top - 50
            text: str(root.player2.score)
        
        PongBall:
            id: pong_ball
            center: self.parent.center
            
        PongPaddle:
            id: player_left
            x: root.x
            center_y: root.center_y
            
        PongPaddle:
            id: player_right
            x: root.width-self.width
            center_y: root.center_y
    De l'autre :
    Code:
    <Window x:Class="PongGame.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=System"
        KeyDown="MainWindow_OnKeyDown"
        Title="MainWindow" Height="503" Width="824" ResizeMode="NoResize">
    <Canvas Width="800" Height="475" Name="MainCanvas" Background="#FFD1D1D1">
    
        <Rectangle Height="80" Width="20" Fill="Blue"
                   Canvas.Top="{Binding YPosition}"
    
                   Name="LeftPad"></Rectangle>
        <Rectangle Height="80" Width="20" Fill="Brown" 
                   Canvas.Top="{Binding YPosition}" 
                   Canvas.Left="780" 
                   Name="RightPad"></Rectangle>
        <Line X1="400" X2="400" Y2="500" Y1="0" StrokeThickness="2" Stroke="#FFDBB062"></Line>
        <Ellipse Width="20" Height="20" Canvas.Left="{Binding X}"
                 Canvas.Top="{Binding Y}" Name="Ball" DataContext="{Binding Path=ball}" StrokeThickness="0.1" Fill="#FFF84949">
    
        </Ellipse>
        <Label Canvas.Left="630" Canvas.Top="34" Content="{Binding Y}" Height="28" Name="label1" />
        <Label Canvas.Left="565" Canvas.Top="34" Content="Y of ball" Height="28" Name="label2" />
        <Label Canvas.Left="535" Canvas.Top="68" Content="Y of right pad" Height="28" Name="label3" />
        <Label Canvas.Left="630" Canvas.Top="68" Content="{Binding YPosition}" Height="28" Name="label4" />
        <Label Canvas.Left="638" Canvas.Top="128" Content="{Binding MovingRight}" Height="28" Name="label5" />
        <Label Canvas.Left="184" Canvas.Top="34" Content="{Binding X}" Height="28" Name="label6" />
        <Label Canvas.Left="119" Canvas.Top="34" Content="X of ball" Height="28" Name="label7" />
        <Label Canvas.Left="89" Canvas.Top="68" Content="X of right pad" Height="28" Name="label8" />
        <Label Canvas.Left="184" Canvas.Top="68" Content="{Binding YPosition}" Height="28" Name="label9" />
        <Label Canvas.Left="349" Canvas.Top="35" Content="{Binding LeftResult}" Height="auto" Name="label10" 
               FontSize="40" Foreground="Blue"/>
        <Label Canvas.Left="421" Canvas.Top="35" Content="{Binding RightResult}" Height="auto" Name="label11" 
               FontSize="40" Foreground="Brown"/>
    </Canvas>
    Je comprend bien le deuxième aussi, et il est lisible (si on met de coté l'indentation à l'ouest, mais c'est l'utilisateur qui a défini ça). Mais autant j'aime le xml pour les données et l'aspect sémantique (et à mon boulot, 90% du temps, je traite du xml pour les données et ça me convient très bien), autant ça me gave pour le descriptif/configuration et l'édition à la main. Y a des avantages (principalement tous ce qui gravite autour de xml), mais l'utilisabilité et l'édition du truc est primordial pour ce que je fais.

    Je passe aussi que je n'y connais rien à l'implémentation IronPython (ça s'apprend ceci dit) et je me méfie aussi de tout ce qui est techno Microsoft (pas pour des raisons idéologique, j'en ai rien à carrer, mais pour des raisons de développement). Je bosse sous environnement linux et c'est la principale cible. Les non-développeurs sont sous Windows, c'est pour cela que je cible aussi cette plate-forme. Avec xaml/IronPython, est-ce que ça ne risque pas d'être galère sous linux ?
    Et puis, très honnêtement, quand je regarde les exemples sur le net avec xaml, je ne vois pas ce que ça m'apporte de convivial par rapport à Qt. De première impression, c'est kif-kif. Je me plante peut-être ceci dit.
    J'ai raison et vous avez tort.

  5. #5705
    Le XAML que t'as posté est un peu dégueulasse aussi

  6. #5706
    Dites, j'ai pas mal de fichiers textes que j'aimerai mettre en page de manière très basique sous forme d'odt. Pour ça j'ai créé un petit script python:

    Code:
    file_src = "toto.txt"
    file_out = "toto.odt"
    
    # We initiate the html code with the font
    html = """<font face="Times New Roman">"""
    
    # We open the document
    lines = []
    with open(file_src, 'r') as sources:
    	lines = sources.readlines()
    
    #=== Title ===
    # We know that the first line is the title
    title = lines[0]
    
    # We add the title to the html code
    title_html = ""
    title_html += "<center>"
    title_html += "<b>" + title + "</b>"
    title_html += "</center><br /><br />"
    
    html += title_html
    
    
    #=== Text ===
    for i in range(1, len(lines)):
    	# We add the current line to the html code
    	line = lines[i]
    	line_html = ""
    	line_html += """<p align="justify">"""
    	line_html += line
    	line_html += "</p>"
    
    	html += line_html
    
    #=== We close the font
    html += "</font>"
    
    #=== Document writing===
    # We create the document
    doc = QtGui.QTextDocument()
    doc.setHtml(html)
    
    
    
    # We save the QTextDocument as an ODT file
    writer = QtGui.QTextDocumentWriter()
    writer.setFormat(writer.supportedDocumentFormats()[1])
    writer.setFileName(file_out)
    writer.write(doc)
    Grossomodo, je crée un QTextDocument à partir d'HTML, et je sauves en odt (j'ai fait ça à partir d'un script trouvé sur stackoverflow).

    Ça fonctionne très bien, je peux ouvrir mon document avec libre office, mais ensuite, quand je veux ajouter la numérotation des pages via docutils j'obtiens les erreurs suivantes:

    Code:
    $: rst2odt2 --custom-odt-footer="Page %p% of %P%" toto.odt toto2.odt
    toto.odt:1: (WARNING/2) Inline interpreted text or phrase reference start-string without end-string.
    toto.odt:1: (WARNING/2) Inline emphasis start-string without end-string.
    toto2.odt est bien créé, mais impossible de le lire. Est-ce que j'ai mal créé mon odt à la base, ou bien c'est l'utilitaire de docutils qui a du mal avec certains fichiers odt-? Je n'utilise jamais libreoffice (je l'ai installé pour l'occasion), du coup je suis un peu perdu.

  7. #5707
    Il me semble que LibreOffice sait faire ça directement dans un script sans passer par Python.
    une balle, un imp (Newstuff #454, Edge, Doom retro, Whitemare 2, DoomeD again)
    Canard zizique : ?, , Φ, , € ¤ , PL, , , , , , 💩, , 🎮, 🎸 𝄢 🎹, 🎼, , , blues, BO, , 👅, 👄, 🎻, 2, 80, 🎹, , , funk, fusion, 🎸, , 🏭, 🗻, 🎷, 🌴, 🍔, 💀 , noise, pop, , , $ $, , et ⚑, soul, , 🍄, (allez là si vous ne voyez pas les miquets)

  8. #5708
    Ah merci, je vais chercher ça

  9. #5709
    C’est dans ure, il me semble.
    une balle, un imp (Newstuff #454, Edge, Doom retro, Whitemare 2, DoomeD again)
    Canard zizique : ?, , Φ, , € ¤ , PL, , , , , , 💩, , 🎮, 🎸 𝄢 🎹, 🎼, , , blues, BO, , 👅, 👄, 🎻, 2, 80, 🎹, , , funk, fusion, 🎸, , 🏭, 🗻, 🎷, 🌴, 🍔, 💀 , noise, pop, , , $ $, , et ⚑, soul, , 🍄, (allez là si vous ne voyez pas les miquets)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts