Bolzenbraus v5.47 – Handbuch

© 2026 Bernhard Lickert – Entwickelt mit Unterstützung von Claude (Anthropic)

Haftungsausschluss: Die Nutzung erfolgt vollständig auf eigene Gefahr. Es wird keinerlei Gewähr für Funktion, Eignung oder Fehlerfreiheit übernommen; eine Haftung für Schäden jeglicher Art ist – soweit gesetzlich zulässig – ausgeschlossen.

🆕 Neu in v5.47 – Startmeldung „Zugriff verweigert" behoben
Beim Start erschien die Qt-Meldung „SetProcessDpiAwarenessContext() failed: Zugriff verweigert". Ursache war eine Änderung aus v5.46: Dort wurde versuchsweise eine eigene Windows-DPI-Awareness gesetzt. Qt 6 macht das aber bereits selbst – und zwar in der besseren Variante (PER_MONITOR_AWARE_V2). Da Windows diese Einstellung nur einmal pro Programmstart zulässt, verdrängte der eigene Aufruf Qts bessere Variante und verursachte die Fehlermeldung. Der Aufruf wurde entfernt, Qts Standardverhalten ist wiederhergestellt.
Die eigentliche Ursache der zu großen Beschriftung war der in v5.46 behobene Schriftgrößen-Fehler in der Symbolleiste – vom Nutzer als behoben bestätigt. Zwei neue Tests verhindern, dass der DPI-Aufruf versehentlich wieder eingebaut wird. Das Testnetz umfasst nun 508 Tests.

Ältere Versionshinweise stehen gesammelt in der Versionshistorie am Ende dieses Handbuchs.


Was ist Bolzenbraus?

Bolzenbraus ist ein visueller Website-Editor für den Desktop – ein sogenannter WYSIWYG-HTML-Editor (What You See Is What You Get). Du gestaltest Webseiten direkt auf einer Zeichenfläche, siehst das Ergebnis in Echtzeit, und das Programm erzeugt daraus sauberes, fertiges HTML – das du direkt per FTP auf deinen Webserver hochladen kannst.

Das Besondere: Bolzenbraus läuft vollständig lokal auf deinem Rechner, braucht keine Internetverbindung zum Arbeiten, kein Abonnement, keinen Account und keine Cloud. Du behältst jederzeit volle Kontrolle über deine Daten und deinen Code.

Wofür eignet sich Bolzenbraus?

Was Bolzenbraus nicht ist

Kein Content-Management-System (kein WordPress, kein Drupal), keine Datenbank, kein Hosting. Bolzenbraus erstellt statische HTML-Dateien – du bist für Hosting und Serverinfrastruktur selbst verantwortlich.


Funktionsübersicht

🖼 Canvas – die Zeichenfläche

Alle Elemente werden frei auf dem Canvas platziert, verschoben, skaliert und gedreht. Das Raster und die Hilfslinien helfen beim präzisen Ausrichten. Mehrere Elemente lassen sich gemeinsam markieren und bearbeiten. Der Zoom funktioniert per Mausrad oder Tastatur.

📦 Element-Typen

ElementBeschreibung
📝 TextblockFormatierter Text mit Schriftart, Größe, Farbe, Ausrichtung, Rahmen, Hintergrund
🖼 BildBilder aus lokalen Dateien, skalierbar, mit Alt-Text für SEO
</> HTML-BlockFreier HTML-Code – eingebettete Widgets, iframes, eigene Komponenten
⬛ FormKontaktformular mit Versand via Formspree (kein Server) oder PHP-Mailer (eigener SMTP)
🧭 NavigationFrei platzierbarer Nav-Block mit Links, Burger-Menü auf Mobil/Tablet, Flexbox-Export
⊞ TabelleBearbeitbare Tabelle mit Zellfarben, Ausrichtung, colspan/rowspan
▶ VideoLokale Videodateien oder externe URLs einbinden
◆ Form (Grafik)Rechteck, Ellipse, Linie – mit Füllfarbe, Rahmen, Transparenz

📱 Responsives Design

Drei Ansichten in einem Projekt: Desktop, Tablet und Mobil. Für jeden Breakpoint lassen sich Position, Größe und Sichtbarkeit der Elemente separat festlegen. Auf Mobil werden Elemente automatisch gestapelt (Auto-Stack). Der HTML-Export erzeugt vollständige Media Queries.

📄 Seitenverwaltung

Ein Projekt kann beliebig viele Seiten enthalten. Seiten lassen sich benennen, verschieben, duplizieren, importieren und als Vorlagen (Templates) markieren – neue Seiten können dann per Deepcopy auf einer Vorlage basieren. Masterseiten definieren gemeinsame Elemente (z. B. Header, Footer), die auf allen zugehörigen Seiten automatisch erscheinen.

🎨 Globale Designvariablen

Projektweite Farb- und Schrift-Variablen, die mit beliebig vielen Elementen verknüpft werden können. Ändert sich eine Variable, aktualisieren sich alle verknüpften Elemente sofort. Im HTML-Export erscheinen sie als CSS Custom Properties (:root { --bb-name: value; }).

📤 Export und Veröffentlichung

↩ Undo-Verlauf mit Jump-to-State

Alle Aktionen sind unbegrenzt rückgängig machbar (Strg+Z). Das Undo-Verlauf-Panel zeigt die komplette History als klickbare Liste – per Klick auf einen Eintrag springt die Seite direkt auf diesen Zustand zurück.

🔧 Anpassbare Oberfläche

Toolbars, das linke Werkzeuge-Panel und die Dock-Panels sind frei konfigurierbar: Buttons ein-/ausblenden, Reihenfolge per Drag & Drop ändern. Panel-Farben (Titelleisten, Inhaltsbereiche, Abschnittsüberschriften) sind unter Ansicht → Darstellungs-Einstellungen frei wählbar. Das 2-Spalten-Dock-Layout rechts (Eigenschaften + Tabs für Effekte, Design-Variablen, Undo-Verlauf) passt sich der Arbeitssituation an.

Weitere Features


Panel-Layout

2-Spalten-Anordnung rechts

Der rechte Dock-Bereich ist in zwei Spalten aufgeteilt:

Linke SpalteRechte Spalte (Tabs)
Eigenschaften-Panel
(immer sichtbar)
Effekte & Animation
🎨 Design-Variablen
↩ Undo-Verlauf

Die Tabs der rechten Spalte erscheinen oben. Beim ersten Start und nach „Panel-Layout zurücksetzen" (Ansicht-Menü) wird diese Anordnung automatisch wiederhergestellt.

Optionale Panels öffnen und schließen

Ansicht-Menü → 🎨 Design-Variablen oder ↩ Undo-Verlauf (Häkchen = sichtbar). Der Zustand wird sofort gespeichert und beim nächsten Start automatisch wiederhergestellt – auch nach Versions-Updates.

💡 Panel-Layout zurücksetzen: Ansicht → „↺ Panel-Layout zurücksetzen" stellt die Standard-2-Spalten-Anordnung wieder her. Optionale Panels (Design-Variablen, Undo-Verlauf) werden dabei ausgeblendet.

Undo-Verlauf-Panel

Das Undo-Verlauf-Panel zeigt alle gespeicherten Zustände der aktuellen Seite als klickbare Timeline an. Damit lässt sich jeder frühere Zustand direkt anspringen.

Panel öffnen

Ansicht-Menü → ↩ Undo-Verlauf (Häkchen = sichtbar).
Das Panel erscheint als Tab in der rechten Spalte neben Effekte & Animation.

Jump-to-State – Zustand direkt anspringen

1. Im Undo-Verlauf-Panel ist jede Aktion als Eintrag aufgelistet (z. B. „Element hinzugefügt", „Text geändert").
2. Auf einen Eintrag klicken – die Seite springt sofort auf diesen Zustand zurück.
3. Der aktuelle Zustand ist fett hervorgehoben.
💡 Hinweis: Der Undo-Stack wird pro Seite gehalten und beim Seitenwechsel zurückgesetzt. Strg+Z / Strg+Y funktionieren weiterhin unabhängig vom Panel.

Panel-Farben einstellen

Ansicht → 🎨 Darstellungs-Einstellungen… → Abschnitt Panel-Farben.

Verfügbare Farbwähler

GruppeFarben
Linke Panels
Masterseiten, Seiten, Ebenen
Titel-Hintergrund · Titel-Text · Inhalt-Hintergrund
Rechte Panels
Eigenschaften, Effekte, Design-Vars, Undo
Titel-Hintergrund · Titel-Text · Inhalt-Hintergrund
Abschnitte
Textkontur, Animation, Hover-Effekte …
Hintergrund · Hover-Hintergrund · Hover-Text
1. Auf einen Farb-Button klicken → Farb-Auswahl-Dialog.
2. OK – Farben werden sofort angewendet und in den Programmeinstellungen gespeichert.
3. ↺ Standardfarben wiederherstellen – setzt alle Panel-Farben auf die eingebauten Defaults zurück.
💡 Hover-Farbe: Die dunklere Hover-Farbe der Dock-Titelleisten wird automatisch aus der gewählten Titelfarbe berechnet – kein eigener Farbwähler nötig.

Autosave

Bolzenbraus speichert Projekte automatisch in regelmäßigen Abständen als Sicherheitskopie – falls das Programm unerwartet abstürzt oder der Rechner ausgeht.

Einstellungen

Einstellungen → 💾 Autosave…:

So funktioniert es

1. Alle n Minuten prüft Bolzenbraus ob es ungespeicherte Änderungen gibt.
2. Falls ja, wird eine Sicherheitskopie als meinprojekt.bolzen.autosave neben der Projektdatei abgelegt. In der Statusleiste erscheint kurz „💾 Autosave: …".
3. Beim nächsten Öffnen der Datei erkennt Bolzenbraus die neuere Sicherheitskopie und fragt: „Autosave wiederherstellen?"
4. Nach dem manuellen Speichern (Strg+S) oder beim normalen Beenden wird die .autosave-Datei automatisch gelöscht.
💡 Hinweis: Autosave funktioniert nur wenn das Projekt bereits mindestens einmal manuell gespeichert wurde (Strg+S). Bei neuen, noch nicht gespeicherten Projekten erscheint stattdessen ein Hinweis in der Statusleiste.

Scroll-Schutz in Panels

Zahlenfelder (SpinBox), Dropdowns (ComboBox) und Schieberegler (Slider) in allen Panels reagieren nicht auf das Mausrad, solange sie keinen Tastaturfokus haben.

Wert ändern: Erst ins Feld klicken, dann Mausrad oder Tastatur benutzen.
Panel scrollen: Einfach über das Panel scrollen – kein Feld verändert sich.


Globale Designvariablen

Panel öffnen

Ansicht-Menü → 🎨 Design-Variablen (Häkchen = sichtbar).

Variable anlegen

1. Im Design-Variablen-Panel auf + klicken.
2. Name eingeben, z. B. „Primärfarbe".
3. Typ wählen: Farbe oder Schriftart.
4. Wert festlegen (Farb-Auswahl-Dialog oder Schriftarten-Liste).
5. OK – die Variable erscheint in der Liste mit Farbvorschau.

Variable mit Element verknüpfen

1. Element auf dem Canvas auswählen.
2. Im Panel die gewünschte Variable in der Liste markieren.
3. Eigenschaft wählen (Dropdown): Hintergrundfarbe, Rahmenfarbe, Füllfarbe (Form) oder Form-Rahmenfarbe.
4. 🔗 Verknüpfen klicken – der aktuelle Variablen-Wert wird sofort übernommen.

Variable ändern → automatische Propagierung

Doppelklick auf eine Variable → Wert ändern → OK.
Alle verknüpften Elemente aktualisieren sich sofort auf dem Canvas.

Verknüpfung lösen

Element auswählen → Eigenschaft im Dropdown wählen → ✂ Trennen.
Das Element behält seinen aktuellen Farbwert, ist aber nicht mehr gebunden.

HTML-Export

:root {
  --bb-primaerfarbe: #1a3d6b;
  --bb-akzentfarbe:  #ff6600;
}
<div style="background-color:var(--bb-primaerfarbe);">

Bindbare Eigenschaften

EigenschaftGilt fürCSS-Ausgabe
🟥 HintergrundfarbeText, Bild, HTML, Tabelle …background-color: var(--bb-…)
🔲 RahmenfarbeText-Elementborder: Xpx solid var(--bb-…)
🔶 Füllfarbe (Form)Form-ElementSVG-Füllung
🔷 Form-RahmenfarbeForm-Elementborder: Xpx solid var(--bb-…)

Seiten-Template (Vorlagen)

Eine Seite kann als Vorlage markiert werden. Neue Seiten lassen sich dann auf dieser Vorlage basieren – alle Elemente und Seiteneinstellungen werden per Deepcopy übertragen, die neue Seite ist vollständig unabhängig.

Seite als Vorlage markieren

1. Im Seiten-Panel (links) Rechtsklick auf die gewünschte Seite.
2. Im Kontextmenü 📄 Als Vorlage markieren wählen.
3. Die Seite erscheint mit 📄★ und [Vorlage] (lila eingefärbt).

Neue Seite auf Basis einer Vorlage

1. Im Seiten-Panel auf + klicken.
2. Im Dialog: Vorlage aus dem Dropdown wählen (erscheint nur wenn Vorlagen vorhanden).
3. Optional: Masterseite zuordnen → OK.

Vorlage-Markierung aufheben

Rechtsklick auf die Vorlage-Seite → 📄 Vorlage aufheben.

AnzeigeBedeutung
📄★ Name [Vorlage]Als Vorlage markiert (lila)
Normaler SeitennameKeine Vorlage

Werkzeuge-Panel anpassen

Rechtsklick auf das linke Werkzeuge-Panel → „🔧 Werkzeuge anpassen…"

ButtonFunktionShortcut
🎨 Format PainterStil zwischen Elementen übertragenStrg+Shift+C
📝 TextTextblock einfügenStrg+T
🖼 BildBild einfügenStrg+I
🌐 HTMLHTML-Block einfügenStrg+H
⊞ TabelleTabelle einfügenStrg+Shift+T
👁 VorschauBrowser-Vorschau öffnenStrg+Shift+P
🔍 SuchenSuchen & ErsetzenStrg+F

Vollständige Shortcut-Übersicht

ShortcutFunktion
Strg+NNeues Projekt
Strg+OProjekt öffnen
Strg+SProjekt speichern
Strg+ZRückgängig
Strg+YWiederherstellen
Strg+CKopieren
Strg+XAusschneiden
Strg+VEinfügen
Strg+DAuswahl duplizieren (20 px versetzt)
Strg+TTextblock einfügen
Strg+IBild einfügen
Strg+HHTML-Block einfügen
Strg+Shift+TTabelle einfügen
Strg+Shift+VVideo einfügen
Strg+Shift+CFormat Painter (Stil kopieren)
Strg+Alt+VStil einfügen
Strg+GGruppe erstellen
Strg+Alt+GGruppe auflösen
Strg+Shift+GRaster ein-/ausblenden
Strg+Shift+←Ausrichten: Links
Strg+Shift+→Ausrichten: Rechts
Strg+Shift+↑Ausrichten: Oben
Strg+Shift+↓Ausrichten: Unten
Strg+Alt+HAusrichten: Horizontal zentrieren
Strg+Alt+MAusrichten: Vertikal zentrieren (Mitte)
Strg+FSuchen & Ersetzen
Strg+EHTML exportieren
Strg+PPer FTP veröffentlichen
Strg+Shift+PBrowser-Vorschau
Strg+1/2/3Desktop/Tablet/Mobil-Layout
EscFormat Painter abbrechen

Versionshistorie

VersionHighlights
v5.47Rücknahme des DPI-Teils aus v5.46: Der dort eingebaute Aufruf SetProcessDpiAwareness war ein Fehlgriff und wurde durch die Konsolenausgabe des Nutzers widerlegt („SetProcessDpiAwarenessContext() failed: Zugriff verweigert – Qt's default DPI awareness context is DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2"). Qt 6 setzt bereits selbst den besten Modus; da die Prozess-DPI-Awareness unter Windows nur einmal gesetzt werden kann, verdrängte der eigene Aufruf Qts besseren V2-Kontext durch den älteren v1 und erzeugte bei jedem Start eine Fehlermeldung. Aufruf entfernt, Qt-Standard wiederhergestellt. Die eigentliche Ursache der Nutzermeldung war der Toolbar-Schriftgrößen-Bug aus v5.46 – vom Nutzer als behoben bestätigt. Zwei neue Regressionstests (Test40NoManualDpiAwareness) verhindern den Wiedereinbau. 508 Tests
v5.46Toolbar-Button-Schrift war 1:1 an die Icon-Pixelgröße gekoppelt (immer ~1,8× zu groß gegenüber der 9pt-Programmschrift, screenshot-belegt) – jetzt proportional (pt = f(Icongröße), 9 pt bei Standardgröße), 4 neue Tests (Test41ToolbarFontSizeProportional). Zusätzlich testweise Windows-Prozess-DPI-Awareness gesetzt – siehe v5.47, dort wieder entfernt
v5.44Absturz bei Ansicht → Darstellungs-Einstellungen behoben: Der Dialog stürzte beim Öffnen sofort mit einem internen Programmierfehler ab (Variable 'work' wurde verwendet, bevor sie zugewiesen war – Rest einer Methoden-Extraktion aus v4.4). Fix: Rückgabewert wird jetzt korrekt entgegengenommen. Drei neue Regressionstests (Test39DisplaySettingsWorkBinding) verhindern ein Wiederauftreten (502 Tests)
v5.43Thread-Lifecycle-Fix im Link-Checker: Der Extern-Check-Worker wird beim Schließen des Dialogs kontrolliert beendet (requestInterruption + wait; hängende Threads werden geparkt statt vom GC zerstört – Absturz-Ursache). Callback gegen RuntimeError gekapselt, Doppelstart verhindert, offener Dialog wird per raise_()/activateWindow() wiederverwendet. VBS-Versionsstempel aktualisiert (neuer Konsistenz-Test), toter base64-Import entfernt. Neue Testklasse Test38LinkCheckerThreadLifecycle (499 Tests)
v5.42Build-Härtung + Paket-Vollständigkeit: bolzenbraus.ico ist fester Paketbestandteil; build-Skripte prüfen alle Voraussetzungen (Python, PyQt6, Pillow, PyInstaller, Icon), installieren fehlende pip-Pakete automatisch nach, nutzen 'python -m PyInstaller' und warnen bei zu kleiner EXE. Neuer Test (Test37PackageCompleteness) sichert die Paket-Vollständigkeit (486 Tests)
v5.41Code-Cleanup nach intensivem statischem Review: toter Import QTransform entfernt (nirgends verwendet), dazugehöriger wirkungsloser Test sowie drei doppelte, sich gegenseitig überschreibende Testmethoden bereinigt. Rein technisch, keine Funktionsänderung (484 Tests)
v5.40Doku-Kennzahlen dauerhaft abgesichert: Neue Testklasse (Test36DocMetricsConsistency) prüft bei jedem Testlauf, dass die in README und Programmbeschreibung genannten Metriken – Klassen-, Methoden-, Test- und Testklassenzahl – exakt mit dem Code übereinstimmen (Pendant zu check_renderer_scope.py für die Doku). Zuvor liefen die Zahlen still auseinander (README 454, Code 482). Alle Werte auf kanonische Zahlen korrigiert (72 Klassen, 746 Methoden); 3 neue Tests (485 gesamt)
v5.39Render-Zeitfenster strukturell gehärtet: Aufräumen nach Export/Vorschau/FTP/Quelltext in einer zentralen Methode (_restore_after_render) gebündelt – eine Quelle der Wahrheit. Schließt die Wurzel der v5.35/v5.36-Daten-Korruption, behebt eine Lücke in der In-App-Vorschau, Cleanup doppelter @staticmethod (482 Tests gesamt)
v5.38Master-Dekoration im Export korrekt im Hintergrund: Formen/Bilder/Texte der Masterseite lagen vor dem Seiteninhalt (Dreiecke über Navigation/Video). Master-Elemente werden im Export jetzt markiert → Dekoration hinter dem Inhalt, Navigation bleibt vorne. Test31 erweitert (475 gesamt)
v5.37Bugfix: Dekorative Formen (große/gedrehte Dreiecke) blockierten im Export darunterliegende Links wie die Navigation. Formen ohne Klick-Funktion/Hover sind jetzt klick-durchlässig (pointer-events:none). 3 neue Tests (472 gesamt)
v5.36Zweiter Daten-Korruptions-Pfad geschlossen: Autospeicher konnte während Export/Vorschau/FTP/Quelltext Master-Elemente fest in die Seite einbrennen. Zentrale Render-Sperre verhindert das. 5 neue Tests (469 gesamt)
v5.35Wichtiger Bugfix (Daten-Korruption): HTML-Quelltext-Ansicht stellte die Bearbeitungsansicht nicht wieder her → Master-Dekoration brannte sich beim Speichern fest in die Seite ein („Objekte kopieren sich von selbst"). Behoben + 6 neue Tests
v5.34Bugfix Masterseiten-Z-Reihenfolge: Master-Dekoration lag im Export/in der Vorschau vor dem Seiteninhalt; jetzt korrekt im Hintergrund, Master-Navigation weiterhin im Vordergrund
v5.28HTML-Datei-Texteditor (Einstellungen → „✏ HTML-Datei bearbeiten…"): externe .html-Dateien als Rohtext öffnen, bearbeiten und speichern; Suchen & Ersetzen mit Vorwärts/Rückwärts, Live-Treffer-Zähler, Groß-/Kleinschreibung und Ganz-Wort-Option
v3.63Suchen & Ersetzen: neue Checkbox „Alle Seiten" – durchsucht und ersetzt Text auf allen Projektseiten gleichzeitig
v3.62Bugfix: Sidebar-Nav bekam fälschlich width:100vw im Tablet-Breakpoint; jetzt nur noch bei horizontalen Navs
v3.61Bugfix: Deduplication von Masterelementen an korrekte Stelle in _build_html() verschoben
v3.60Bugfix: Nav-Element erschien dreifach im exportierten HTML durch Master-Page-Duplikate; Deduplication per elem_id
v3.59Bugfix: Export verwendete Mobil-Positionen statt Desktop wenn Projekt in Mobil-Modus gespeichert wurde
v3.58Bild-Optimierung (WebP) deaktiviert – Seiteneffekte auf Nav-Darstellung; Export wieder mit shutil.copy2
v3.57Seiteneinstellungen: „Seite aus Navigation ausschließen" – 404-Seite automatisch ausgeblendet; gilt für NavCanvasItem und globale Navigation
v3.56Burger-Menü: Breakpoint von 1024 px auf 768 px gesenkt (aktiviert nur noch auf Smartphones)
v3.55Bild-Optimierung beim Export: WebP-Konvertierung + Skalierung auf max. 1920 px (Pillow); Fallback auf Copy wenn Pillow fehlt
v3.54Text-Editor: Dark Mode wird bei weißem/hellem Text automatisch aktiviert
v3.53Anker-Links: Dropdown im LinkDialog zeigt verfügbare Anker-IDs der aktuellen Seite
v3.52404-Fehlerseite: Button im Seiten-Panel, automatisch noindex gesetzt; Handbuch: fixe Sidebar-Navigation mit Scrollspy und Zurück-nach-oben-Button
v3.51Responsive Vorschau: aktiver Viewport hervorgehoben, Auto-Sync mit Canvas-Breakpoint, Desktop-Reset-Bugfix
v3.50SEO-Felder pro Seite (Open Graph, Twitter Card, robots, lang, canonical); Datei → Projekt schließen; Seiteneinstellungen mit Scrollbalken; Favicon-Picker + Datei wird beim Export mitkopiert; OG-Bild wird beim Export mitkopiert; Toolbar: Seite/Export/FTP oben, Vorschau ganz rechts; Bugfixes: Export-Crash, modified-Flag bei Drag/Resize, export_dir NameError
v3.49Mastodon/Signal/Threema: URL-Feld leer vorbelegt statt Placeholder-Text; Fallback auf Plattform-Homepage wenn keine URL; Validierung vor Speichern
v3.48Social-Media-Buttons (15 Plattformen, Inline-SVG, kein CDN); Dark Mode; ZIP-Export (Projekt + Website); Signal + Threema
v3.47Cookie-Banner-Element (DSGVO, position:fixed, localStorage)
v3.46Sitemap priority pro Seite; Shortcut-Anpassung
v3.45Galerie/Slider mit Lightbox; In-App-Vorschau (WebEngine)
v3.44Bugfix: _check_optional_deps() blockierte den Start (3×60 s Timeout) → Programm scheinbar eingefroren; Handbuch-CSS-Bug (pre code) behoben
v3.43Bugfix: QRadioButton fehlte im PyQt6-Import → NameError beim Öffnen des FTP-Dialogs
v3.42Code-Review: 7 tote Methoden + 4 unbenutzte Imports entfernt; sinnloser for-pass-Loop entfernt; Globale Navigation (Legacy) im Einstellungen-Menü zugänglich gemacht
v3.41Modul-Docstring auf v3.41 aktualisiert (v3.36–v3.41 ergänzt); toter _apply_onclick-Stub in PropertiesPanel entfernt; redundanter QTimer-noqa-Reimport entfernt
v3.40EXE-Icon: bolzenbraus.ico mit 6 Größen (16–256px), PyInstaller-Spec aktualisiert
v3.39Undo über Seitenwechsel: Strg+Z wechselt bei Bedarf die Seite; Undo-Panel zeigt Seiten-Hinweis
v3.38Ausrichten-Shortcuts (Strg+Shift+Pfeil, Strg+Alt+H/M); Shortcut-Konflikt Strg+Shift+G gefixt; Import-Reihenfolge bereinigt
v3.37Über-Dialog: Versionshistorie + Kurzreferenz aktualisiert; closeEvent-Bug gefixt
v3.36Handbuch: EXE läuft ohne Python-Installation dokumentiert
v3.35PyInstaller-Spec Bugfix (version=None), Shell-Skripte Linux/macOS, Handbuch: Starten dokumentiert
v3.34Code-Review: Autosave Multi-Tab-Bug, doppelte Methoden, Imports konsolidiert, Copyright 2026
v3.33Autosave konfigurierbar (Interval + Ein/Aus in Darstellungs-Einstellungen)
v3.33Seiteneinstellungen-Dialog breiter, Text umbrechend
v3.29Autosave: automatische Sicherheitskopie alle n Minuten
v3.28Legacy-Navigation aus Menü entfernt
v3.27Strg+D: Duplizieren; Strg+Shift+G: Raster ein-/ausblenden
v3.26Scroll-Schutz in allen Dialogen (BolzenDialog-Basisklasse)
v3.25Panel-Sichtbarkeit korrekt gespeichert (toggleViewAction + QTimer)
v3.22Dock-Reiter oben (setTabPosition North)
v3.21Panel-Farben in Darstellungs-Einstellungen konfigurierbar (9 Farbwähler)
v3.20GroupBox-Abschnitte dunkler (#d0d0d0), VERSION-Konstante gefixt
v3.19Panel-Titelfarben abgemildert (Stahlblau/Sandbeige), Panel-Sichtbarkeit persistiert
v3.18Scroll-Schutz endgültig: StrongFocus auf alle Eingabefelder
v3.17Panel-Titelleisten farblich klar unterscheidbar
v3.16Scroll-Schutz auf ComboBox und Slider ausgeweitet
v3.15Rechter Dock 2 Spalten, Seiten-Template, Undo-Verlauf-Panel
v3.14Globale Designvariablen, Werkzeuge-Panel anpassbar, Panel-Farben
v3.13Multi-Select Resize, Format Painter, Suchen & Ersetzen, Snap-Indikator
v3.10–v3.12Externe HTML, Auto-Stack Mobile, HTML-Quelltext-Editor, Smart Snap
v3.7–v3.9Freie Panel-Anordnung, Viewport-Vorschau, Tablet CSS-Zoom
v3.5–v3.6Toolbar anpassbar, skalierbare Icons
v3.0–v3.4Responsives Design, Breakpoints, Google Fonts, Drehung, Nav-Block, Formulare

Systemvoraussetzungen & Starten

✅ Empfohlen für die meisten Nutzer: die fertige bolzenbraus_v5_47.exe starten (siehe unten „▶ Empfohlen: Fertige EXE starten") – kein Python, kein PyQt6, keine Installation nötig. Die Python-Voraussetzungen unten gelten nur für den Quellcode-Start (z. B. unter Linux/macOS) oder wenn du die EXE selbst bauen willst.

▶ Empfohlen: Fertige EXE starten (Windows, kein Python nötig)

Die einfachste und sicherste Startart unter Windows: Doppelklick auf bolzenbraus_v5_47.exe. Python und PyQt6 sind darin bereits vollständig eingebettet – auf dem Rechner, auf dem die EXE läuft, muss nichts installiert werden, kein Python, kein PyQt6, kein Terminal.

1. bolzenbraus_v5_47.exe in einen beliebigen Ordner legen (z. B. Eigene Dateien\Bolzenbraus).
2. Doppelklick auf die Datei – das Programm startet sofort, ohne weitere Schritte.
💡 Woher bekomme ich die EXE? Entweder wurde sie dir bereits weitergegeben, oder du baust sie einmalig selbst – siehe Abschnitt „⚙ EXE erstellen" weiter unten. Nach dem einmaligen Bauen reicht danach immer nur noch der Doppelklick.

Alternative: Direkt aus dem Python-Quellcode starten

Sinnvoll unter Linux/macOS (dort gibt es keine EXE), oder für Entwickler, die am Code mitarbeiten. Setzt eine lokale Python- und PyQt6-Installation voraus (siehe Systemvoraussetzungen oben).

▶ Windows

Doppelklick auf start_bolzenbraus.bat – oder im Terminal:

python bolzenbraus.py

▶ Linux

Terminal öffnen, in den Programmordner wechseln:

cd /pfad/zum/ordner
python3 bolzenbraus.py

Oder das mitgelieferte Shell-Skript verwenden (einmalig ausführbar machen):

chmod +x start_bolzenbraus.sh
./start_bolzenbraus.sh

PyQt6 installieren falls nicht vorhanden:

pip3 install PyQt6

▶ macOS

Terminal öffnen (Spotlight: Cmd+Leertaste → „Terminal"):

cd /pfad/zum/ordner
python3 bolzenbraus.py

Oder Shell-Skript:

chmod +x start_bolzenbraus.sh
./start_bolzenbraus.sh

PyQt6 installieren:

pip3 install PyQt6
# Bei Homebrew-Python oder neuem macOS ggf.:
pip3 install --break-system-packages PyQt6
💡 Tipp: Bei Darstellungsproblemen PyQt6 aktualisieren: pip install --upgrade PyQt6

⚙ EXE erstellen (Windows, PyInstaller)

Für Entwickler/Ersteller – so entsteht die unter „▶ Empfohlen" beschriebene fertige EXE.

Die mitgelieferte bolzenbraus.ico wird automatisch als EXE-Icon verwendet (6 Größen: 16–256 px).

Doppelklick auf build_bolzenbraus.bat – oder im Terminal:

python -m PyInstaller bolzenbraus_v5_47.spec --noconfirm

Die fertige EXE liegt danach unter dist\bolzenbraus_v5_47.exe – diese Datei ist es, die Endnutzer:innen anschließend einfach per Doppelklick starten (siehe oben).

✅ Die EXE läuft ohne Python-Installation. Sie enthält Python und PyQt6 bereits eingebettet – auf dem Zielrechner muss nichts installiert werden. Einfach bolzenbraus_v5_47.exe doppelklicken.
💡 Hinweis: Die mitgelieferte version_info.txt ermöglicht vollständige Windows-EXE-Metadaten (Dateiversion, Produktname, Copyright im Eigenschaften-Dialog). Um sie zu aktivieren, in der .spec-Datei die Zeile
version=None
ersetzen durch:
version='version_info.txt'

📱 Social-Media-Buttons v3.48

Mit dem Social-Media-Buttons-Element fügst du Profil-Links zu deinen Social-Media-Auftritten ein – als saubere Inline-SVG-Icons ohne externe Abhängigkeiten (kein CDN, kein Tracking).

Element einfügen

Klicke in der Toolbar auf 📱 Social. Der Einstellungen-Dialog öffnet sich sofort.

Verfügbare Plattformen

Alle Plattformen sind standardmäßig deaktiviert. Du wählst per Häkchen genau die aus, die du benötigst:

PlattformStandard-URL-Prefix
Facebookhttps://facebook.com/
Instagramhttps://instagram.com/
X (Twitter)https://x.com/
YouTubehttps://youtube.com/@
TikTokhttps://tiktok.com/@
LinkedInhttps://linkedin.com/in/
WhatsApphttps://wa.me/
Telegramhttps://t.me/
Pinteresthttps://pinterest.com/
GitHubhttps://github.com/
XINGhttps://xing.com/profile/
MastodonFeld leer – vollständige Profil-URL eingeben,
z. B. https://mastodon.social/@deinname
oder https://fosstodon.org/@deinname
Ohne URL: Link zur Mastodon-Startseite
SignalFeld leer – Format: https://signal.me/#p/+49XXXXXXXXXX
Ohne Nummer: Link zur Signal-Website
ThreemaFeld leer – Format: https://threema.id/ABCDEFGH
Ohne ID: Link zur Threema-Website
E-Mailmailto:

Stil-Optionen

Export

Beim HTML-Export werden alle Icons als Inline-SVG direkt in die HTML-Datei eingebettet. Kein externer Font, kein CDN, kein Tracking-Request. Die Links öffnen in einem neuen Tab (target="_blank"), E-Mail-Links im selben Tab.

Hinweise

🌙 Dark Mode v3.48

Über Einstellungen → 🌙 Dark Mode lässt sich die App-Oberfläche auf ein dunkles Erscheinungsbild umschalten. Der Canvas selbst (die weiße Seite) bleibt dabei immer hell – Dark Mode betrifft nur die App-Chrome (Menüs, Panels, Dialoge, Toolbar).

Die Einstellung wird automatisch gespeichert und beim nächsten Start wiederhergestellt.

📦 ZIP-Export v3.48

Im Menü Datei stehen zwei ZIP-Export-Funktionen bereit:

📦 Projekt als ZIP sichern

Erstellt ein portables ZIP-Archiv mit der .bolzen-Projektdatei und dem kompletten images/-Ordner. Das ZIP kann auf einem anderen Rechner entpackt und direkt geöffnet werden – alle Bilder bleiben verknüpft.

🗜 Website als ZIP exportieren

Führt den HTML-Export durch und verpackt alle generierten Dateien (HTML-Seiten, Bilder, Sitemap) in ein ZIP-Archiv. Ideal zum Weitergeben oder direkten Hochladen auf den Webserver – einfach entpacken, fertig.

🔍 SEO-Felder pro Seite v3.50

Jede Seite kann jetzt mit vollständigen SEO-Meta-Tags versehen werden. Die Einstellungen findest du unter Datei → Seiteneinstellungen → SEO / Meta-Tags.

Verfügbare Felder

FeldWirkung
Meta-Beschreibung<meta name="description"> – Kurzbeschreibung für Suchmaschinen (120–160 Zeichen empfohlen)
Sprache (lang=)<html lang="de"> – war vorher hardcodiert auf "de", jetzt pro Seite einstellbar
Robots<meta name="robots"> – steuert ob Suchmaschinen die Seite indexieren sollen
OG-Titel<meta property="og:title"> – Titel beim Teilen in Social Media (leer = Seitentitel)
OG-Beschreibung<meta property="og:description"> – Beschreibung beim Teilen (leer = Meta-Beschreibung)
Kanonische URL<link rel="canonical"> + <meta property="og:url">
OG-Bild<meta property="og:image"> – Vorschaubild beim Teilen (Empfehlung: 1200×630 px)

Twitter Card

Wird automatisch aus den Open-Graph-Feldern befüllt – kein separater Aufwand nötig. Im Export erscheinen twitter:card, twitter:title, twitter:description und twitter:image.

Robots-Optionen

EinstellungBedeutung
index, followSeite indexieren, Links folgen (Standard)
noindex, followSeite nicht indexieren (z. B. Danke-Seite nach Formular)
index, nofollowSeite indexieren, Links nicht folgen
noindex, nofollowSeite komplett aus Suchmaschinen ausschließen

❌ Projekt schließen v3.50

Unter Datei → Projekt schließen lässt sich das aktive Projekt-Tab schließen. Bei ungespeicherten Änderungen erscheint eine Rückfrage. Wird das letzte Tab geschlossen, öffnet Bolzenbraus automatisch ein neues leeres Projekt.

Hinweis: Dasselbe war vorher nur über das ✕-Symbol direkt am Tab möglich.

🔧 Toolbar-Layout v3.50

Die obere Toolbar wurde neu geordnet. Häufig genutzte Aktionen sind jetzt direkt erreichbar:

PositionButtons
Toolbar oben links⬜ Neu  ·  📂 Öffnen  ·  💾 Speichern  |  ↩ Rückgängig  ·  ↪ Wiederherstellen  |  ⚙ Seite  ·  📤 Export  ·  🌐 FTP
Toolbar oben rechts👁 Vorschau (ganz rechts, immer sichtbar)
Toolbar untenAlle Element-Werkzeuge (Text, Bild, Galerie, …)

Die Toolbar ist weiterhin vollständig anpassbar unter Ansicht → Toolbar anpassen – dort können Buttons per Drag & Drop umsortiert und ein- oder ausgeblendet werden.

🌐 Favicon v3.50

Das Favicon wird unter Datei → Seiteneinstellungen → Favicon per Datei-Explorer ausgewählt. Unterstützte Formate: .ico, .png, .svg, .gif, .jpg.

Beim Export wird die Favicon-Datei automatisch in das Export-Verzeichnis kopiert und im <head> als relativer Pfad eingetragen:

<link rel="icon" href="favicon.ico">

Hinweis: Empfohlen ist eine quadratische .ico- oder .png-Datei (32×32 oder 64×64 px). Browser zeigen das Favicon im Tab und in Lesezeichen an.

📱 Responsive Vorschau v3.51

Die In-App-Vorschau (Ansicht → In-App Vorschau oder Strg+Shift+P) zeigt die Seite direkt in Bolzenbraus – ohne externen Browser. Über die Viewport-Buttons kann die Breite live umgeschaltet werden:

ButtonBreiteEntspricht
🖥 Desktopvolle Breitenormaler Bildschirm
⬜ Tablet768 pxiPad / Tablet-Querformat
📱 Mobil375 pxiPhone / Android-Hochformat

Der aktive Modus wird blau hervorgehoben. Beim Öffnen der Vorschau wird automatisch der aktive Canvas-Breakpoint übernommen – wer also im Tablet-Modus arbeitet, sieht die Vorschau direkt bei 768 px.

Hinweis: Die Vorschau benötigt PyQt6-WebEngine. Falls der Button fehlt, muss das Paket manuell installiert werden: pip install PyQt6-WebEngine

🚫 404-Fehlerseite v3.52

Im Seiten-Panel gibt es den Button 404. Ein Klick legt eine neue Seite mit dem Dateinamen 404.html und dem Namen „404 – Seite nicht gefunden" an.

Die Seite wird beim Export wie jede andere Seite exportiert. Damit sie als Fehlerseite funktioniert, muss der Hoster entsprechend konfiguriert sein:

Hoster / ServerKonfiguration
ApacheErrorDocument 404 /404.html in .htaccess
Nginxerror_page 404 /404.html; in der Server-Konfiguration
Netlify / GitHub PagesAutomatisch – 404.html wird erkannt
Strato / IONOSIm Hosting-Panel unter „Fehlerseiten" eintragen

Hinweis: Die 404-Seite wird automatisch mit robots: noindex, nofollow versehen – sie soll nicht in Suchmaschinen erscheinen.