1

Salut !

Est-ce que vous savez si on peut changer le thème des applis winforms sous linux ? (compilé avec mono)
L'appli est très moche...
"export MONO_THEME=nice" ne fonctionne pas.

2

Si ma mémoire est bonne, la réponse est tout simplement « Non, tu ne peux pas ».
De ce que j'en sais, pour coller au mieux à l'existant, l'implémentation de WinForms par Mono est un toolkit d'interface à part entière. Tout est réellement implémenté en C# par Mono, avec quelques rustines ci-et-là pour s'intégrer avec X et autres merdes du genre lorsque c'est nécessaire.
C'est possible qu'ils aient implémenté du code pour gérer les styles Visuels sous Linux, mais j'en doute fortement, vu la faible importance que cela a. Aujourd'hui, leur priorité se porte plus sur Mac, iOS et Android que vers Windows Forms… smile

De plus, "on" te conseillera d'utiliser GTK# plutôt que Windows Forms pour développer des applications sous Linux. (Personnellement, je ne conseillerais rien du tout, vu que je trouve qu'aucune des solutions existantes n'est correcte, mais bon… Il faudra bien que tu choisisses un truc si tu en as besoin tongue)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

3

4

Je ne connais pas Linform et je ne le trouve pas dans google.

Mon idée c'était de faire une appli graphique avec C# pour apprendre le langage.
Cela dit, je voulais aussi qu'elle soit portable et j'ai besoin d'un widget de tableur un peu flexible.

J'ai testé Gtk# mais le widget de tableur ne convient pas. Avec les Winforms, le résultat graphique sous linux est laid avec pas mal de glitchs.
J'ai aussi testé Qyoto (portage de Qt), mais je ne parviens pas à le faire fonctionner avec Visual Studio et je ne trouve pas de doc.
Qt4DotNet n'est plus mis à jour depuis trois ans.
Il me reste wx.NET et je suis un peu sceptique... Vous croyez qu'on peut faire de jolies applis avec ?
Sinon, il va falloir que je change de langage.

5

(Linforms, c'était une blague de notre ami squalyl, voyons !)

Sinon, au risque de relancer un troll vieux comme le mondeinux, une interface graphique portable correcte, ça n'existe pas. (T'as qu'à regarder swing chez Java, c'est une pure blague ^^)
Si tu développes sur Linux, tu feras un frontend GTK ou Qt. Si tu développes sur Mac, tu feras un frontend Cocoa (par exemple avec MonoMac). Si tu développes sur Windows, tu utiliseras Windows Forms, WPF, ou Windows Runtime pour 8 & RT.

Cela dit, wxWidgets est sans doute ce qui s'approche le plus d'une interface graphique portable correcte, si on n'est pas trop regardant sur la qualité du résultat final (ça sera un peu moche partout…). Pour wx.NET par contre aucune idée de ce que ça vaut par rapport à la version native ^^

Sinon, pour apprendre le langage je ne saurais que te conseiller de te passer de la partie graphique au départ, ce qui te permettra de te focaliser sur le langage et non sur le toolkit d'interfaces qui aura ses propres ses propres spécificités, et aussi ses propres bugs. cheeky
En plus comme ça, le fonctionnement sera le même partout. (Et après tu pourras faire du Web, du Windows Forms, du GTK#, comme tu veux…)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

6

GoldenCrystal (./5) :
(Linforms, c'était une blague de notre ami squalyl, voyons !)
Erps ! Logique...

Je trouve que Qt fonctionne très bien sous windows...
Lol, j'étais en train de penser à faire du java avec swing potentiellement... smile
Sinon je peux aussi le faire en mode web, mais ça m'embête de l'héberger...
Bon, j'hésite. A l'origine c'est un programme que j'avais fait en macros excel (qui permet de générer des relevés de notes et de les imprimer)
https://subversion.assembla.com/svn/generateur-releves-notes/

7

(Note que pour le Web, Microsoft propose un hébergement gratuit avec Azur sous certaines conditions, mais une appli web ça demande de gérer les utilisateurs donc c'est un peu plus chiant parfois)

La vraie question est: as tu réellement besoin que l'application soit portable ? Sinon, ça simplifiera tes démarches ^^
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

8

Ma femme aussi me dit que la portabilité ça sert à rien... (et merde !)
Ok, si je laisse tomber la portabilité, je peux utiliser les WinForms, WPF, ou bien du java avec javafx, Pivot, etc...
Il reste un obstacle : je ne sais pas trop comment générer les relevés de notes. Grosso modo, il s'agit de tableaux paginés sous forme d'un PDF...
Je pense à une solution qui consisterait à générer une page web en fonctionnant par remplacements. Avec un peu de JS, ça se code tout seul.
Le pb c'est que j'aimerais qu'on puisse éditer l'aspect graphique

9

bon sérieux

QT perso moi je trouve ça un peu usine à gaz, c'est vraiment gigantesque et lourd, QT4 ne marche pas avec mingw et qt5, j'ai toujours pas compris si leur nouvelle "modularité" changeait quelque chose

pour moi dernier projet j'ai pris wxwidgets et j'en suis très content, c'est léger, facile à comprendre, pas la peine se s'emmerder avec qmake et moc, et avec l'IDE codeblocks, t'as un genre de qtdesigner qui s'appelle wxsmith et qui génère le code nécessaire.

10

squalyl (./9) :
QT perso moi je trouve ça un peu usine à gaz

C'est vrai, mais t'as le même éditeur sous Windows et Linux, et c'est joli (à mon goût) des deux côtés. Ca ne demande pas de changement de code pour compiler sur l'un ou l'autre. Moi j'aime bien, j'ai failli le conseiller, mais l'OP ne l'a pas fait donc j'ai rien dit, mais c'est de ce côté que j'aurais tenté.

Et bon, de ce que j'ai pu lire sur l'un et utiliser de l'autre, c'est quand même bien plus utilisable que les grosses IDE Java façon Eclipse.

11

toi qui vis sur le forum codeblocks, je pensais que tu allais parler de wx embarrassed

12

le truc codé en C objet ? tongue

13

boah, je fais le minimum en C++ et dès que possible je code le reste en C...

14

En fait, wx est probablement bien foutu, j'en sais rien côté dev. Mais c'est le côté "joli" que je trouve étonnant cheeky

15

ah, bah ouais, ils font des efforts pour utiliser les contrôles natifs smile

16

D'ailleurs, ya le 3.0 qui vient de sortir il y a une paire de semaines. Le suport unicode est maintenant bien mieux foutu, de ce que j'en ai compris, et évidemment il y a tout un lot d'améliorations.

17

18

Sur le site de WxWidgets ils disent qu'ils utilisent GTK sous Linux pour le rendu des widgets.
Vu que j'ai pas trouvé le widget de grille que je voulais dans Gtk, je suis pas convaincu de trouver ce que je veux dans WxWidgets...
Vous utiliseriez quoi comme technique pour générer des relevés de notes et que le prof puisse choisir l'aspect graphique ?

19

Ça dépend de ce que tu entends par "choisir l'aspect graphique", car c'est un concept très vague. (Tu parles des couleurs, de la façon dont sont présentées les données, … ?)
En général, on te conseillera de lister tout ce que tu dois pouvoir faire, et tout ce que tu ne dois pas pouvoir faire. (En pratique, c'est surtout bien quand tu ne sais pas par où commencer)
Le but c'est d'étendre, mais surtout de restreindre, ton champ d’application. (Tu vas l'étendre jusqu'à une limite : Ce que tu auras décidé de ne pas gérer, autrement dit des restrictions)
À partir de là, tu pourras commencer à trouverchercher des solutions adaptées.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

20

J'ai testé l'exemple sur les grilles qui fait à peu près ce que je veux, il manque les colonnes/lignes bloquées mais ça doit être jouable.
Par contre, on voit clairement la conception sous-jacente de la lib qui n'est pas orientée objet.
Dans l'exemple ils créent une énumération pour avoir des identifiants uniques pour chaque élément des menus...

21

En fait, quand je parle d'éditer graphiquement les relevés de notes, je pensais que les enseignants pourraient choisir la police et la mise en page du haut du document et du pied de page.
Il faudrait aussi pouvoir choisir la façon dont les matières se suivent.
Il faudrait que l'utilisateur puisse s'arranger pour que les relevés de notes de tous les élèves fassent une seule page (réduction de la taille de la police, de l'interligne).
De plus, il faut pouvoir sauvegarder les préférences.

A l'origine, en simplifiant, j'avais fait deux documents :
Modèle
Matière

Dans le document "modèle", j'utilise un mot clé "%Matière%" qui sera remplacé par le document matière. Dans "matière", on utilise "%matière suivante%" pour placer la matière qui suit.
Dans le document "matière", j'utilise un mot clé "%Matière suivante%" qui sera remplacé par le document Matière. J'utilisais "%notes%" pour afficher les notes, "%moyenne%" pour la moyenne...
Bref, la construction du relevé de note final se faisait récursivement à partir de plusieurs morceaux de documents qui servaient de templates...

Ca marchait super bien parce que c'était dans Excel, et que par conséquent, je pouvais choisir la largeur des colonnes, la police...
Je sais pas trop comment faire la même chose en dev classique sans y passer un temps fou.
Pour le moment, je pense à faire un page html avec deux ou trois css pour modifier le style de relevé, et deux ou trois fichiers JavaScript qui gèrent l'insertion des notes et des matières dans le DOM en générant des structures de pages différentes.
Depuis le code principal, je génèrerais la liste des appels JS qui génèrent le DOM (euh je suis clair ?)
Ce qui me gène, c'est que les enseignant ne savent pas éditer des documents HTML...
Si je pouvais écrire plusieurs pages HTML comme les documents "modèle" et "matière" cités ci-dessus, et que j'avais un éditeur html qui permette aux enseignants de modifier ces documents, ce serait top !

22

./ 19 et alors? c'est quoi le problème de l'enum? wx peut pas être moins objet qu'actuellement, par contre c'est du C++ avec sa syntaxe, on fait pas du csharp ou du java, là...

23

gon33 (./20) :
J'ai testé l'exemple sur les grilles qui fait à peu près ce que je veux, il manque les colonnes/lignes bloquées mais ça doit être jouable.
Par contre, on voit clairement la conception sous-jacente de la lib qui n'est pas orientée objet.
Dans l'exemple ils créent une énumération pour avoir des identifiants uniques pour chaque élément des menus...

Ça prouverait donc que l'API d'Android entre autres choses n'est pas orientée objet ça grin
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

24

./22 > Je pense que gon33 regardait l'api wx.NET, justement… Donc on fait du C# là…
./21 > Je crains ne pas pouvoir être d'une grande aide à ce sujet. :/
Cela fait partie des problèmes que tu dois résoudre par toi-même, puisqu'il s'agit de faire des choix (beaucoup de choix !) sorry
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

25

Oui, c'est l'API de Wx.NET que je regardais.
Ce qui m'embête, c'est que dans l'exemple sur le widget de grille, on passe son temps à caster des énumérations vers des entiers pour les utiliser comme des identifiants d'objets (ex : tel menu que je vais créer), puis on utilise des fonctions pour interagir avec ces objets.
C'est pas très objet, pas instinctif en tout cas, et source de bugs. D'ailleurs, j'ai fait planter l'exemple assez facilement.

Ok, alors ce que je voudrais, c'est que l'utilisateur puisse éditer graphiquement le document principal, celui qui est statique.

Ex :
Ecole Ste Marguerite Année 2015
Adresse

Relevé de %Nom Eleve% - premier trimestre

%Tableau notes%

Le bas de page

Pouvoir choisir la taille de la police, la couleur, le texte et l'alignement.
Pouvoir aligner à droite de la page, à gauche, faire deux colonnes.
Je forcerai l'usage de la police avec le CSS, l'enseignant ne s'en occupe pas.
Après, j'introduirai ma propre logique dans le document.

Je vais continuer à chercher des solutions. Ce qui me brancherait c'est un éditeur HTML wysiwyg, en HTML happy
Le pb c'est qu'il arrive bien à m’aligner le texte à droite et à gauche de la page, facilement. J'aurais bien voulu aussi que les enseignants puissent insérer des images, mais c'est un peu de boulot...
Il faudrait que je puisse les convertir en hexa, et le navigateur ne peut pas le faire directement sans serveur... A voir.

26

Bon, si je pars dans cette voie, je voudrais manipuler le DOM avec JQuery :
Je voudrais pouvoir sortir %Tableau notes% (texte affiché en HTML) de toute balise où il pourrait être, sauf "body".
Puis ensuite, le remplacer par autre chose.
Vous savez comment on fait ça avec jQuery ?

27

:contains() peut te trouver le texte, filtre ensuite les résultats avec un .not("body")

puis avec un .each loope sur chaque résultat, sort le .html d'origine avec .html(), fait un .replace dessus et réinjecte avec .html(data)

mais jquery n'est pas vraiment fait pour travailler avec des bouts de texte, utiliser une vrai balise comme marqueur sera bien plus simple.
et la le mec il le pécho par le bras et il lui dit '

28

Merci
Ok, maintenant je travaille avec des balises et j'avance bien. Là j'avais beosin de texte, parce que c'est l'utilisateur qui va le placer.
Enfin les balises c'est pas nickel non plus, on peut pas les injecter partout.
Genre je génère une table et j'ai besoin de me laisser une balise à remplacer dedans, jquery veut pas m'insérer un span (j'en mets partout), et du coup je suis obligé de changer de balise en fonction du contexte.

Un autre truc qui me serait utile, mais je sais pas si ça existe : Est-ce que c'est possible avec un outils de charger une page web, puis d'en extraire une version évaluée du DOM ? (outils du style PhantomJS, Node.JS, javascript...)
Je veux dire une version du DOM où le JavaScript de chargement a été exécuté, et où toutes les références à l'extérieur sont intégrées au DOM.
Genre je veux une page mais où le CSS et les fonts sont intégré à la page HTML...
Ca ferait que je pourrais convertir ma page et toutes ses dépendances en une seule page, statique, qui serait le document final

29

en fait le soucis avec les marqueurs "texte" c'est que .replace n'est pas du jquery et prendra donc du html brut, cela fait qu'une fois l'insertion effectué tu ne peut pas le manipuler sans devoir le sélectionner,
avec jquery tu crée l'élément, l’insère au bon endroit puis tu peut te resservir de la référence originale pour le (re-)manipuler
exemple http://jsfiddle.net/r043v/hhyn4/

> Enfin les balises c'est pas nickel non plus, on peut pas les injecter partout.

c'est une possibilité comme une autre il y à pléthore de choix, va faire un tour du coté des sélecteurs jquery

> Genre je génère une table et j'ai besoin de me laisser une balise à remplacer dedans, jquery veut pas m'insérer un span

ce n'est pas jquery mais le navigateur qui ne veut pas, le dom à des règles, ton <span ne pourra pas se mettre dans un <tr, par contre dans un <td ça marchera très bien

si tu veut permettre à l'utilisateur de réordonner le contenus du document "en live" sans pour autant devoir connaitre le langage html, tu devrais éventuellement regarder du code de gestion drag & drop comme jquery ui ou jquery.event.drag/drop (enfin si j'ai compris ton besoin)

> j'en mets partout, et du coup je suis obligé de changer de balise en fonction du contexte.

une classe, des id voir des attributs custom (data-) seraient peut être plus pertinents, après tout dépend de tes besoins et du contexte

> Un autre truc qui me serait utile, mais je sais pas si ça existe : Est-ce que c'est possible avec un outils de charger une page web,
> puis d'en extraire une version évaluée du DOM ? (outils du style PhantomJS, Node.JS, javascript...)

pour récupérer ton html évalué/généré, un simple $("body").html(); par exemple peut l'extraire

pour les fontes tu peut les passer en base64 afin de les inclure directement dans le css, comme la, la même chose est valable pour les images

comme tu le dis des outils node vont t'aider à merger tes .css/.js, comme uglifyjs
tu peut automatiser leurs utilisations avec des outils comme grunt (tuto), voir même taper plus haut niveau avec des truc genre yeoman

./25 > insérer des images .. Il faudrait que je puisse les convertir en hexa, et le navigateur ne peut pas le faire directement sans serveur...

tu peux, regarde la "FileReader api" de html5, le js à accès à l'image sans devoir l'envoyer puis la re-récuperer, après je ne sais pas si ca fonctionne en lançant le .html depuis le système de fichier

une app web sans serveur est vraiment bridé, nodejs accompagné de framework serveur tel qu'express te permet sans galérer à installer un vrai serveur web (apache, nginx) de tout de même en avoir un "vrai", d'écouter un port sur la machine ou depuis un intranet etc, de servir des fichiers statiques, d'écrire des fichier, accéder à une bdd et autres, facilement, et aussi sous windows, de plus npm (son package manager) est vraiment riche, tu trouvera de tout pour tout (dont pas mal de daubes :- ), beaucoup de choses sont pré-mâchées (exemple pour la gestion des url crud : https://github.com/visionmedia/express-resource )

associé à des choses comme http://socket.io/ qui te permet un dialogue constant entre le navigateur et node (au delà du concept de "pages") plus des scripts robustes coté client, que se soit niveau présentation des donnés comme http://datatables.net/ ou niveau utilitaire dans ton app comme http://backbonejs.org/ ou http://angularjs.org/

./5 > Sinon, au risque de relancer un troll vieux comme le mondeinux, une interface graphique portable correcte, ça n'existe pas.
et pourtant le web à réussi. c'est d'autant plus triste qu'il existe les beaux projets cités plus haut (Qt, Gtk, ...) ^^
et la le mec il le pécho par le bras et il lui dit '

30

Folco (./10) :
squalyl (./9) :
QT perso moi je trouve ça un peu usine à gaz

C'est vrai, mais t'as le même éditeur sous Windows et Linux, et c'est joli (à mon goût) des deux côtés. Ca ne demande pas de changement de code pour compiler sur l'un ou l'autre. Moi j'aime bien, j'ai failli le conseiller, mais l'OP ne l'a pas fait donc j'ai rien dit, mais c'est de ce côté que j'aurais tenté.

Et bon, de ce que j'ai pu lire sur l'un et utiliser de l'autre, c'est quand même bien plus utilisable que les grosses IDE Java façon Eclipse.

Perso, je trouve Qt mal intégré au système (surtout sur OS X), et on se rend tout de suite compte que l'appli n'est pas native. Accessoirement, les binding Python ne sont pas terribles. Malheureusement, je trouve que ça reste ce qui se fait de mieux en portable sad


Après, Eclipse n'est pas le meilleur exemple, regarde plutôt du côté de Jetbrains (mais ils ne font pas encore d'éditeur C/C++, c'est en cours)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant