xibless ist ein Python-Bibliothek, die Objective-C-Code, der Cocoa-Benutzeroberflächen & nbsp baut erzeugt;. Das Ziel dieser Bibliothek ist es, XIBs in XCode zu ersetzen und, wenn Sie wollen, von XCode ganz loswerden.
Mit xibless statt Gestaltung UIs mit einem WYSIWYG-Editor, sie in einem Python-Skript bauen Sie, ähnlich zu dem, was Sie tun, wenn Sie Qt UI bauen, ohne Designer. Zum Beispiel wird ein Skript wie folgt:
Ergebnis = Fenster (200, 200, 330, 110, "Sag mir deinen Namen!")
nameLabel = Beschriftung (Ergebnis, text = "Name:")
namefield = Textfield (Ergebnis, text = "")
helloLabel = Beschriftung (Ergebnis, text = "")
Taste = Taste (Ergebnis title = "Sagen Sie hallo")
nameLabel.width = 45
nameLabel.packToCorner (Pack.UpperLeft)
nameField.packRelativeTo (nameLabel, Pack.Right, Pack.Middle)
nameField.fill (Pack.Right)
helloLabel.packRelativeTo (nameLabel, Pack.Below, Pack.Left)
helloLabel.fill (Pack.Right)
button.packRelativeTo (helloLabel, Pack.Below, Pack.Right)
nameField.setAnchor (Pack.UpperLeft, growX = True)
helloLabel.setAnchor (Pack.UpperLeft, growX = True)
button.setAnchor (Pack.UpperRight)
würde Objective-C-Code, der ein Formular mit einem Feld für den Namen einer Textbeschriftung und eine Schaltfläche erstellen zu generieren. Der zweite Teil des Skripts platziert die Widgets auf dem Formular entsprechend.
Obwohl xibless ist in Python geschrieben, die Objective-C-Code erzeugt es keine Python-Abhängigkeit, so dass dieses Tool eignet sich für jede Cocoa-Entwickler.
xibless läuft auf Python 2.7 und höher. Das bedeutet, dass, wenn Sie auf OS X 10.7 oder höher sind, können Sie mit dem integrierten Python. Andernfalls müssen Sie eine neuere Version von Python installieren.
Warum xibless?
Für viele Menschen XCode und dem integrierten Interface Builder arbeiten gut und fair zu sein, ist XCode ein nettes Tool. Sie hat jedoch Nachteile, meist nur Ärgernisse, aber immer noch, nach einer Weile, Belästigungen geworden ... ärgerlich. Zum Beispiel, wenn eine XIB UI erreicht ein gewisses Maß an Komplexität, man weiß ja nie, wenn dabei kleinere Updates, wenn Sie versehentlich auf etwas anderes durcheinander. Da jede Änderung, wie gering ist, ändert sich ein großer Teil der XIB-Datei können Sie nicht in der diff sagen, ob die Änderungen, die Sie gemacht haben, war nur die, die Sie machen wollten. Es gibt auch XIB Lokalisierung, mit der Ein-XIb-copy-per-Lokalisierung, die weniger als optimal, aber schwer zu umgehen ist. Wie auch immer, ich werde nicht versuchen, Sie zu überzeugen. Wenn Sie nicht bereits tun wollen loswerden XCode und / oder XIBs zu bekommen, werden Sie wahrscheinlich nicht brauchen xibless.
Installation
Sie können xibless durch pip installieren:
pip xibless installieren
oder indem Sie das Quellpaket in Betrieb:
python setup.py install
Um die Demos im Ordner Demos, cd hinein und Art zu bauen:
./waf configure
./waf
Die sich ergebende App wird in der Build-Ordner.
Verwendung
xibless kann entweder über die Befehlszeile oder über Python verwendet werden. Um es von der Kommandozeile zu verwenden, geben Sie:
xibless
Was ist neu in dieser Pressemitteilung:.
- hinzugekommen VHLayout.
- hinzugekommen Box.
- In Ansicht, aufgenommen Delegierter, fixedHeight, fixedWidth und accessibilityDescription Attribute sowie moveTo () (eine leistungsfähigere Version des packToCorner ()) und fillAll () Methoden.
- Im Segment hinzugefügt Bild und accessibilityDescription Attribute.
- hinzugekommen SplitView.dividerStyle und hinzugefügt Dokumentation für eine direkte geteilte Ansicht Hierarchie.
- hinzugekommen TableView.borderType und View.focusRingType.
- hinzugekommen Button.bordered
- hinzugekommen MenuItem.state
- hinzugekommen TabView.tabViewType.
- hinzugekommen TextField.usesSingleLineMode.
- am Rand, und richten Sie Argumente an Layouts.
- Veraltete View.packToCorner ().
- Layouts können nun enthalten Sublayouts.
- Lassen Sie Farbe (), um Werte im Bereich von 0 bis 255 zusätzlich zu 0,0 bis 1,0 zu erhalten.
- lokalisieren nicht nur & quot Strings mit; - & quot; (Sie werden benutzt, um eine Trennmenüpunkt angeben).
- Radiobuttons "Höhe hängt nun von der Anzahl der Zeilen hat.
- Feste Füllstoff Größenänderung in Layouts in Fällen, in denen es andere Ansichten neben dem Füllstoff.
- Lassen UI Skripte, um Einheiten, die aus dem selben Ordner zu importieren.
- Ersetzte Button.keyEquivalent mit Button.shortcut.
- Feste runtemplate so dass die XiblessSupport Einheit im RunUI ausführbare zusammengestellt.
- einen Bug, wo wir manchmal am Ende mit zwei erzeugten Element mit demselben varname behoben.
- Sie immer in setAnchor () für Ansichten, die eine feste Breite / Höhe eingestellt haben growX / growY auf Falsch.
- Die & quot; Text & quot; Argument der Textfield-Konstruktor ist jetzt optional.
- Support Seiten und mitten in View.setAnchor ().
- Generated-Einheiten haben jetzt einen Kommentar anzeigt Generationszeit und xibless Version.
- Moved TextField.alignment auf Systemsteuerung
- Nur kopieren XiblessSupport Einheit, wenn es geändert wird, wodurch unnötige erneute Kompilierung.
- Feste TabView Layout Deltas für Fälle, in denen es keine Registerkarten.
- Unterstützung Kombinationen, die die Zeichen "+".
- Verbesserte Standardränder in Layouts, Steuerhöhen und alle anderen kleinen Verbesserungen dieser Art.
Was ist neu in Version 0.4.1:.
- hinzugekommen NLSTR UI Skripte Namensraum
- Sie Window.autosaveName wickeln nicht Lokalisierungs Anrufe.
- einen Fehler verursacht einige Zeichenfolgen in der Lokalisierung Rufe, die gewickelt werden, wurde behoben.
- Set Radiobutton ist & quot; autosizesCells & quot; True bei der Erstellung.
Was ist neu in Version 0.4.0:
- hinzugekommen Steuerung, Splitview, OutlineView, Listview, Toolbar , SegmentedControl, Search, Slider und NumberFormatter.
- hinzugekommen Layouts.
- Unterstützung für viele, viele, viele neue Eigenschaften, Konstanten und Typen.
- Jetzt erzeugt ein & quot; .h & quot; an der Seite der Einheit erzeugt zu gehen.
- hinzugekommen Eigentum und ihre Unterklassen, ein einfacher Weg, um Unterstützung für neue Attribute, selbst komplex einzufügen.
- Es ist nun möglich, die Margen im Layout Methodenaufrufe überschreiben.
- Unterstützung für Bindungen mit dem neuen View.bind () -Methode.
- Hinzugefügt die globale Variable neuen Standardwerte, die benutzt werden können, um Benutzereinstellungen zu binden.
- Konstanten mit const zugreifen können nun bitweise ODER-verknüpft.
- generierte Code wird nun formatiert, um ein bisschen besser aussehen und einfacher zu debuggen.
- für Menübefehle für Sondertasten (Pfeile, geben etc.) Wurden neue Konstanten.
- Unterstützung für UI-Skript Argumente.
Was ist neu in Version 0.3.1:
- Sie den action-Attribut aus-Taste gedrückt zu steuern.
- Radiobuttons ist jetzt ein Steuerklasse.
- Aus Fenster Neuberechnung seiner Ansicht Schleife nachdem generiert seine Kinder.
Was ist neu in Version 0.3.0:
- Hinzugefügt Radiobuttons, Tableview, TabView, Textview, Imageview und Progress.
- Unterstützung für String-Lokalisierung.
- hinzugekommen TextField.alignment und TextField.textColor.
- hinzugekommen Button.keyEquivalent.
- hinzugekommen canClose, CanResize und canMinimize zu Fenster.
- Es wurde ein Steuerklasse.
- Ansicht können nun direkt im UI Skripte instanziiert werden (Sie sind wie & quot; Benutzerdefinierte Ansichten & quot; in IB).
- xibless Lauf kann nun auf Skript für die das Ergebnis ist eine Ansicht ausgeführt werden.
- Verbesserte Layoutsystem.
- Fenster Herkunft wird nun in Bezug auf die Bildschirm Anteilen anstelle von absoluten Positionen geliefert.
- Feste 'id' ownerclass in Hauptfunktionsprototyp Generation gegeben, und die & quot; ownerimport & quot; globale Variable in der UI-Skript.
- Flucht Zeilenumbrüche in String Codegenerierung.
- Hinzugefügt Dokumentation Button.buttonType und Button.bezelStyle und fügte eine Demo für eine Schaltfläche mit einer anderen Blende Stil.
- Fest die krasseste Speicherlecks.
- Ein Fehler, durch Attribute wie auf Klassenebene Standardschriftarten würde bei der Generierung von mehr als einem UI-Skript in der gleichen Python-Sitzung nicht erzeugt werden, wurde behoben.
- Windows werden nicht freigegeben, wenn standardmäßig geschlossen.
- Zusätzliche Unterstützung für Zirkelverweise (ein Fenster Einstellung eine seiner Eigenschaften zu einem Element, das das Fenster erforderlich, bevor sie erstellt beispielsweise initialFirstResponder). Wir konnten bisher nicht Code zu generieren für solche Bindungen.
- Aus den align Argument View.packRelativeTo () optional.
Was ist neu in Version 0.2.0:
- hinzugekommen Sphinx Dokumentation
- für schnelle UI Vorschauen Hinzugefügt wurde die xibless Fahrbefehl.
- hinzugekommen Combobox und Popup.
Anforderungen :
- Python
Kommentare nicht gefunden