generated from dopt-python/py311
code cleansing
This commit is contained in:
@@ -55,106 +55,6 @@ QSS = """
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@dc.dataclass(slots=True)
|
|
||||||
class Address:
|
|
||||||
name: str
|
|
||||||
street: str
|
|
||||||
number: int
|
|
||||||
zip_code: str
|
|
||||||
city: str
|
|
||||||
|
|
||||||
def export(self):
|
|
||||||
data = {}
|
|
||||||
for f in dc.fields(self):
|
|
||||||
data[f.name] = str(getattr(self, f.name))
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
# added search field
|
|
||||||
class AddressForm(QWidget):
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__()
|
|
||||||
|
|
||||||
main_layout = QVBoxLayout(self)
|
|
||||||
form_layout = QFormLayout()
|
|
||||||
form_layout.setSpacing(15)
|
|
||||||
|
|
||||||
# --- 1. Einfaches Feld: Firmenname ---
|
|
||||||
self.company_input = QLineEdit(placeholderText="Name des Partners")
|
|
||||||
form_layout.addRow("Name Unternehmen/Netzwerkpartner:", self.company_input)
|
|
||||||
|
|
||||||
# --- 2. Kombinierte Zeile: Straße & Hausnummer ---
|
|
||||||
street_layout = QHBoxLayout()
|
|
||||||
street_layout.setContentsMargins(0, 0, 0, 0) # Wichtig: Verhindert doppelte Abstände!
|
|
||||||
street_layout.setSpacing(10)
|
|
||||||
|
|
||||||
self.street_input = QLineEdit(placeholderText="Straße")
|
|
||||||
self.number_input = QLineEdit(placeholderText="Nr.")
|
|
||||||
|
|
||||||
# Optik-Trick: Hausnummern-Feld begrenzen, damit es nicht so breit wie die Straße wird
|
|
||||||
self.number_input.setMaximumWidth(80)
|
|
||||||
|
|
||||||
# Mit "stretch" definieren wir das Breitenverhältnis (Straße nimmt restlichen Platz)
|
|
||||||
street_layout.addWidget(self.street_input, stretch=3)
|
|
||||||
street_layout.addWidget(self.number_input, stretch=1)
|
|
||||||
|
|
||||||
form_layout.addRow("Straße / Nr.:", street_layout)
|
|
||||||
|
|
||||||
# --- 3. Kombinierte Zeile: PLZ & Ort ---
|
|
||||||
city_layout = QHBoxLayout()
|
|
||||||
city_layout.setContentsMargins(0, 0, 0, 0)
|
|
||||||
city_layout.setSpacing(10)
|
|
||||||
|
|
||||||
self.zip_input = QLineEdit(placeholderText="PLZ")
|
|
||||||
self.city_input = QLineEdit(placeholderText="Ort")
|
|
||||||
|
|
||||||
self.zip_input.setMaximumWidth(100) # PLZ ist immer relativ kurz
|
|
||||||
|
|
||||||
city_layout.addWidget(self.zip_input, stretch=1)
|
|
||||||
city_layout.addWidget(self.city_input, stretch=3)
|
|
||||||
|
|
||||||
form_layout.addRow("PLZ / Ort:", city_layout)
|
|
||||||
|
|
||||||
main_layout.addLayout(form_layout)
|
|
||||||
|
|
||||||
self.autofilled_fields = (
|
|
||||||
self.street_input,
|
|
||||||
self.number_input,
|
|
||||||
self.zip_input,
|
|
||||||
self.city_input,
|
|
||||||
)
|
|
||||||
for field in self.autofilled_fields:
|
|
||||||
field.setReadOnly(True)
|
|
||||||
field.setStyleSheet("""
|
|
||||||
QLineEdit {
|
|
||||||
background-color: #f1f5f9; /* Helles System-Grau */
|
|
||||||
color: #333D4B; /* Etwas blassere Schrift */
|
|
||||||
border: 1px dashed #cbd5e1; /* Ein gestrichelter Rand wirkt oft wie ein "Stempel" */
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
/* Wenn das Feld fokussiert wird, keinen blauen Rand anzeigen */
|
|
||||||
QLineEdit:focus {
|
|
||||||
border: 1px dashed #cbd5e1;
|
|
||||||
}
|
|
||||||
""")
|
|
||||||
|
|
||||||
def fill_out(self, address: Address):
|
|
||||||
addr_ = address.export()
|
|
||||||
|
|
||||||
for field, value in zip(self.autofilled_fields, addr_.values()):
|
|
||||||
field.setText(value)
|
|
||||||
|
|
||||||
|
|
||||||
ADDRESSES = [
|
|
||||||
Address("Test UG", "Teststraße", 1, "09111", "Chemnitz"),
|
|
||||||
Address("Max Mustermann GmbH", "Teststraße", 2, "09112", "Chemnitz"),
|
|
||||||
Address("Mustergruppe GbR", "Teststraße", 3, "09113", "Chemnitz"),
|
|
||||||
Address("Lorem Ipsum AG", "Teststraße", 4, "09114", "Chemnitz"),
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class CompanyForm_Search(QWidget):
|
class CompanyForm_Search(QWidget):
|
||||||
company_selected = Signal(int)
|
company_selected = Signal(int)
|
||||||
|
|
||||||
@@ -165,54 +65,48 @@ class CompanyForm_Search(QWidget):
|
|||||||
main_layout.setContentsMargins(0, 0, 0, 0)
|
main_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
form_layout = QFormLayout()
|
form_layout = QFormLayout()
|
||||||
form_layout.setSpacing(10)
|
form_layout.setSpacing(10)
|
||||||
|
# TODO: remove title
|
||||||
title = QLabel("--- Suche Unternehmen ---")
|
title = QLabel("--- Suche Unternehmen ---")
|
||||||
title.setStyleSheet("font-size: 14px; font-style: italic;") # font-weight: bold;
|
title.setStyleSheet("font-size: 14px; font-style: italic;") # font-weight: bold;
|
||||||
main_layout.addWidget(title)
|
main_layout.addWidget(title)
|
||||||
|
# --- SEARCH ---
|
||||||
self.search_input = QLineEdit(placeholderText="Tippen zum Suchen...")
|
self.search_input = QLineEdit(placeholderText="Tippen zum Suchen...")
|
||||||
form_layout.addRow("Suche:", self.search_input)
|
form_layout.addRow("Suche:", self.search_input)
|
||||||
|
|
||||||
self.completer = QCompleter()
|
self.completer = QCompleter()
|
||||||
self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
|
self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
|
||||||
self.completer.setFilterMode(Qt.MatchFlag.MatchContains)
|
self.completer.setFilterMode(Qt.MatchFlag.MatchContains)
|
||||||
self.search_input.setCompleter(self.completer)
|
self.search_input.setCompleter(self.completer)
|
||||||
self.completer.activated[QModelIndex].connect(self.search_result_selected) # type: ignore
|
self.completer.activated[QModelIndex].connect(self.search_result_selected) # type: ignore
|
||||||
|
# --- FILLED FIELDS ---
|
||||||
# --- 1. Einfaches Feld: Firmenname ---
|
# name
|
||||||
self.company_input = QLineEdit(placeholderText="Name des Partners")
|
self.company_input = QLineEdit(placeholderText="Name des Partners")
|
||||||
form_layout.addRow("Name Unternehmen/Netzwerkpartner:", self.company_input)
|
form_layout.addRow("Name Unternehmen/Netzwerkpartner:", self.company_input)
|
||||||
|
# street
|
||||||
street_layout = QHBoxLayout()
|
street_layout = QHBoxLayout()
|
||||||
street_layout.setContentsMargins(0, 0, 0, 0) # Wichtig: Verhindert doppelte Abstände!
|
street_layout.setContentsMargins(0, 0, 0, 0) # Wichtig: Verhindert doppelte Abstände!
|
||||||
street_layout.setSpacing(10)
|
street_layout.setSpacing(10)
|
||||||
|
|
||||||
self.street_input = QLineEdit(placeholderText="Straße")
|
self.street_input = QLineEdit(placeholderText="Straße")
|
||||||
self.number_input = QLineEdit(placeholderText="Nr.")
|
self.number_input = QLineEdit(placeholderText="Nr.")
|
||||||
self.number_input.setMaximumWidth(80)
|
self.number_input.setMaximumWidth(80)
|
||||||
|
|
||||||
# Mit "stretch" definieren wir das Breitenverhältnis (Straße nimmt restlichen Platz)
|
|
||||||
street_layout.addWidget(self.street_input, stretch=3)
|
street_layout.addWidget(self.street_input, stretch=3)
|
||||||
street_layout.addWidget(self.number_input, stretch=1)
|
street_layout.addWidget(self.number_input, stretch=1)
|
||||||
|
|
||||||
form_layout.addRow("Straße / Nr.:", street_layout)
|
form_layout.addRow("Straße / Nr.:", street_layout)
|
||||||
|
# ZIP, city
|
||||||
# --- 3. Kombinierte Zeile: PLZ & Ort ---
|
# --- 3. Kombinierte Zeile: PLZ & Ort ---
|
||||||
city_layout = QHBoxLayout()
|
city_layout = QHBoxLayout()
|
||||||
city_layout.setContentsMargins(0, 0, 0, 0)
|
city_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
city_layout.setSpacing(10)
|
city_layout.setSpacing(10)
|
||||||
|
|
||||||
self.zip_input = QLineEdit(placeholderText="PLZ")
|
self.zip_input = QLineEdit(placeholderText="PLZ")
|
||||||
self.city_input = QLineEdit(placeholderText="Ort")
|
self.city_input = QLineEdit(placeholderText="Ort")
|
||||||
self.zip_input.setMaximumWidth(100) # PLZ ist immer relativ kurz
|
self.zip_input.setMaximumWidth(100) # PLZ ist immer relativ kurz
|
||||||
city_layout.addWidget(self.zip_input, stretch=1)
|
city_layout.addWidget(self.zip_input, stretch=1)
|
||||||
city_layout.addWidget(self.city_input, stretch=3)
|
city_layout.addWidget(self.city_input, stretch=3)
|
||||||
|
|
||||||
form_layout.addRow("PLZ / Ort:", city_layout)
|
form_layout.addRow("PLZ / Ort:", city_layout)
|
||||||
|
|
||||||
|
# add fom layout
|
||||||
main_layout.addLayout(form_layout)
|
main_layout.addLayout(form_layout)
|
||||||
|
|
||||||
self.autofilled_fields = (
|
self.autofilled_fields: tuple[QLineEdit, ...] = (
|
||||||
self.company_input,
|
self.company_input,
|
||||||
self.street_input,
|
self.street_input,
|
||||||
self.number_input,
|
self.number_input,
|
||||||
@@ -221,19 +115,7 @@ class CompanyForm_Search(QWidget):
|
|||||||
)
|
)
|
||||||
for field in self.autofilled_fields:
|
for field in self.autofilled_fields:
|
||||||
field.setReadOnly(True)
|
field.setReadOnly(True)
|
||||||
field.setStyleSheet("""
|
field.setProperty("styleClass", "stempel")
|
||||||
QLineEdit {
|
|
||||||
background-color: #f1f5f9; /* Helles System-Grau */
|
|
||||||
color: #333D4B; /* Etwas blassere Schrift */
|
|
||||||
border: 1px dashed #cbd5e1; /* Ein gestrichelter Rand wirkt oft wie ein "Stempel" */
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
/* Wenn das Feld fokussiert wird, keinen blauen Rand anzeigen */
|
|
||||||
QLineEdit:focus {
|
|
||||||
border: 1px dashed #cbd5e1;
|
|
||||||
}
|
|
||||||
""")
|
|
||||||
|
|
||||||
self.update_search_data()
|
self.update_search_data()
|
||||||
|
|
||||||
@@ -244,13 +126,13 @@ class CompanyForm_Search(QWidget):
|
|||||||
self.zip_input.setText(comp_info["ma_plz"])
|
self.zip_input.setText(comp_info["ma_plz"])
|
||||||
self.city_input.setText(comp_info["ma_ort"])
|
self.city_input.setText(comp_info["ma_ort"])
|
||||||
|
|
||||||
def clear_fields(self) -> None:
|
def clear_autofilled_fields(self) -> None:
|
||||||
self.search_input.clear()
|
self.search_input.clear()
|
||||||
for field in self.autofilled_fields:
|
for field in self.autofilled_fields:
|
||||||
field.clear()
|
field.clear()
|
||||||
|
|
||||||
def update_search_data(self) -> None:
|
def update_search_data(self) -> None:
|
||||||
self.clear_fields()
|
self.clear_autofilled_fields()
|
||||||
search_items = QStandardItemModel()
|
search_items = QStandardItemModel()
|
||||||
search_choices = be_init_rec.comp_search_choices()
|
search_choices = be_init_rec.comp_search_choices()
|
||||||
for item, db_index in search_choices:
|
for item, db_index in search_choices:
|
||||||
@@ -277,56 +159,49 @@ class ContactPersonForm_Search(QWidget):
|
|||||||
main_layout.setContentsMargins(0, 0, 0, 0)
|
main_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
form_layout = QFormLayout()
|
form_layout = QFormLayout()
|
||||||
form_layout.setSpacing(10)
|
form_layout.setSpacing(10)
|
||||||
|
# TODO: remove title
|
||||||
title = QLabel("--- Suche Nutzer ---")
|
title = QLabel("--- Suche Nutzer ---")
|
||||||
title.setStyleSheet("font-size: 14px; font-style: italic;") # font-weight: bold;
|
title.setStyleSheet("font-size: 14px; font-style: italic;") # font-weight: bold;
|
||||||
main_layout.addWidget(title)
|
main_layout.addWidget(title)
|
||||||
|
# --- SEARCH ---
|
||||||
self.search_input = QComboBox(placeholderText="Tippen zum Suchen...")
|
self.search_input = QComboBox(placeholderText="Tippen zum Suchen...")
|
||||||
self.search_input.setEditable(True)
|
self.search_input.setEditable(True)
|
||||||
self.search_input.setInsertPolicy(QComboBox.InsertPolicy.NoInsert)
|
self.search_input.setInsertPolicy(QComboBox.InsertPolicy.NoInsert)
|
||||||
line_edit = self.search_input.lineEdit()
|
line_edit = self.search_input.lineEdit()
|
||||||
assert line_edit
|
assert line_edit
|
||||||
line_edit.setPlaceholderText("Suchen...")
|
line_edit.setPlaceholderText("Suchen...")
|
||||||
|
# --- FILLED FIELDS ---
|
||||||
form_layout.addRow("Suche Ansprechpartner:", self.search_input)
|
form_layout.addRow("Suche Ansprechpartner:", self.search_input)
|
||||||
# self.completer = QCompleter()
|
|
||||||
self.completer = self.search_input.completer()
|
self.completer = self.search_input.completer()
|
||||||
assert self.completer
|
assert self.completer
|
||||||
self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
|
self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
|
||||||
self.completer.setFilterMode(Qt.MatchFlag.MatchContains)
|
self.completer.setFilterMode(Qt.MatchFlag.MatchContains)
|
||||||
self.completer.setCompletionMode(QCompleter.CompletionMode.PopupCompletion)
|
self.completer.setCompletionMode(QCompleter.CompletionMode.PopupCompletion)
|
||||||
self.search_input.activated.connect(self.search_result_selected)
|
self.search_input.activated.connect(self.search_result_selected)
|
||||||
|
# salutation
|
||||||
self.gui_titel = QLineEdit()
|
self.gui_titel = QLineEdit()
|
||||||
self.gui_anrede = QLineEdit()
|
self.gui_anrede = QLineEdit()
|
||||||
hor_layout = QHBoxLayout()
|
hor_layout = QHBoxLayout()
|
||||||
hor_layout.addWidget(self.gui_anrede, stretch=1)
|
hor_layout.addWidget(self.gui_anrede, stretch=1)
|
||||||
hor_layout.addWidget(self.gui_titel, stretch=1)
|
hor_layout.addWidget(self.gui_titel, stretch=1)
|
||||||
form_layout.addRow("Anrede / Titel:", hor_layout)
|
form_layout.addRow("Anrede / Titel:", hor_layout)
|
||||||
|
# names
|
||||||
# form_layout.addRow("Titel:", self.gui_titel)
|
|
||||||
|
|
||||||
# form_layout.addRow("Anrede", self.gui_anrede)
|
|
||||||
self.gui_nachname = QLineEdit()
|
self.gui_nachname = QLineEdit()
|
||||||
# form_layout.addRow("Nachname", self.gui_nachname)
|
|
||||||
self.gui_vorname = QLineEdit()
|
self.gui_vorname = QLineEdit()
|
||||||
# form_layout.addRow("Vorname", self.gui_vorname)
|
|
||||||
hor_layout = QHBoxLayout()
|
hor_layout = QHBoxLayout()
|
||||||
hor_layout.addWidget(self.gui_nachname, stretch=1)
|
hor_layout.addWidget(self.gui_nachname, stretch=1)
|
||||||
hor_layout.addWidget(self.gui_vorname, stretch=1)
|
hor_layout.addWidget(self.gui_vorname, stretch=1)
|
||||||
form_layout.addRow("Nachname / Vorname:", hor_layout)
|
form_layout.addRow("Nachname / Vorname:", hor_layout)
|
||||||
|
# phones
|
||||||
phone_layout = QHBoxLayout()
|
phone_layout = QHBoxLayout()
|
||||||
phone_layout.setContentsMargins(0, 0, 0, 0)
|
phone_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
phone_layout.setSpacing(10)
|
phone_layout.setSpacing(10)
|
||||||
|
|
||||||
self.gui_landline_number = QLineEdit()
|
self.gui_landline_number = QLineEdit()
|
||||||
self.gui_mobile_number = QLineEdit()
|
self.gui_mobile_number = QLineEdit()
|
||||||
# Mit "stretch" definieren wir das Breitenverhältnis
|
|
||||||
phone_layout.addWidget(self.gui_landline_number, stretch=1)
|
phone_layout.addWidget(self.gui_landline_number, stretch=1)
|
||||||
phone_layout.addWidget(self.gui_mobile_number, stretch=1)
|
phone_layout.addWidget(self.gui_mobile_number, stretch=1)
|
||||||
form_layout.addRow("Telefon Festnetz / Mobil:", phone_layout)
|
form_layout.addRow("Telefon Festnetz / Mobil:", phone_layout)
|
||||||
|
# additional
|
||||||
self.gui_email = QLineEdit()
|
self.gui_email = QLineEdit()
|
||||||
form_layout.addRow("E-Mail:", self.gui_email)
|
form_layout.addRow("E-Mail:", self.gui_email)
|
||||||
self.gui_funktion = QLineEdit()
|
self.gui_funktion = QLineEdit()
|
||||||
@@ -334,7 +209,8 @@ class ContactPersonForm_Search(QWidget):
|
|||||||
|
|
||||||
main_layout.addLayout(form_layout)
|
main_layout.addLayout(form_layout)
|
||||||
|
|
||||||
self.autofilled_fields = (
|
# auto-filled fields are readonly
|
||||||
|
self.autofilled_fields: tuple[QLineEdit, ...] = (
|
||||||
self.gui_titel,
|
self.gui_titel,
|
||||||
self.gui_anrede,
|
self.gui_anrede,
|
||||||
self.gui_nachname,
|
self.gui_nachname,
|
||||||
@@ -346,19 +222,7 @@ class ContactPersonForm_Search(QWidget):
|
|||||||
)
|
)
|
||||||
for field in self.autofilled_fields:
|
for field in self.autofilled_fields:
|
||||||
field.setReadOnly(True)
|
field.setReadOnly(True)
|
||||||
field.setStyleSheet("""
|
field.setProperty("styleClass", "stempel")
|
||||||
QLineEdit {
|
|
||||||
background-color: #f1f5f9; /* Helles System-Grau */
|
|
||||||
color: #333D4B; /* Etwas blassere Schrift */
|
|
||||||
border: 1px dashed #cbd5e1; /* Ein gestrichelter Rand wirkt oft wie ein "Stempel" */
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
/* Wenn das Feld fokussiert wird, keinen blauen Rand anzeigen */
|
|
||||||
QLineEdit:focus {
|
|
||||||
border: 1px dashed #cbd5e1;
|
|
||||||
}
|
|
||||||
""")
|
|
||||||
|
|
||||||
self.update_search_data(None)
|
self.update_search_data(None)
|
||||||
|
|
||||||
@@ -382,7 +246,7 @@ class ContactPersonForm_Search(QWidget):
|
|||||||
)
|
)
|
||||||
self.fill_out(comp_info)
|
self.fill_out(comp_info)
|
||||||
|
|
||||||
def clear_fields(self) -> None:
|
def clear_autofilled_fields(self) -> None:
|
||||||
self.search_input.clear()
|
self.search_input.clear()
|
||||||
for field in self.autofilled_fields:
|
for field in self.autofilled_fields:
|
||||||
field.clear()
|
field.clear()
|
||||||
@@ -391,7 +255,7 @@ class ContactPersonForm_Search(QWidget):
|
|||||||
self,
|
self,
|
||||||
company_id: int | None,
|
company_id: int | None,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.clear_fields()
|
self.clear_autofilled_fields()
|
||||||
search_choices = be_init_rec.contact_person_search_choices(company_id, True)
|
search_choices = be_init_rec.contact_person_search_choices(company_id, True)
|
||||||
for item, db_index in search_choices:
|
for item, db_index in search_choices:
|
||||||
self.search_input.addItem(item, db_index)
|
self.search_input.addItem(item, db_index)
|
||||||
@@ -444,16 +308,10 @@ class FormFieldDynList:
|
|||||||
fields: Sequence[FormField]
|
fields: Sequence[FormField]
|
||||||
|
|
||||||
|
|
||||||
@dc.dataclass(slots=True)
|
|
||||||
class FormFieldGroup:
|
|
||||||
label: str | None
|
|
||||||
fields: Sequence[FormField] | FormFieldDynList
|
|
||||||
|
|
||||||
|
|
||||||
# @dc.dataclass(slots=True)
|
# @dc.dataclass(slots=True)
|
||||||
# class FormFieldRegistry:
|
# class FormFieldGroup:
|
||||||
# widget: QWidget
|
# label: str | None
|
||||||
# form_field: FormField
|
# fields: Sequence[FormField] | FormFieldDynList
|
||||||
|
|
||||||
|
|
||||||
class WidgetRegistryEntry(TypedDict):
|
class WidgetRegistryEntry(TypedDict):
|
||||||
@@ -1015,22 +873,8 @@ FORM_FIELDS_LANGUAGES = [
|
|||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
# FORM_DYN_LIST = FormFieldDynList("Dynamische Liste", FORM_FIELDS_SCHOOL)
|
|
||||||
|
|
||||||
|
|
||||||
FORM_FIELDS = [
|
FORM_FIELDS = [
|
||||||
# FormFieldGroup(
|
|
||||||
# "Status && Projektrelevanz",
|
|
||||||
# [
|
|
||||||
# FormField(
|
|
||||||
# "Projektrelevanz",
|
|
||||||
# FormFieldType.DROPDOWN,
|
|
||||||
# required=True,
|
|
||||||
# options=["ja", "nein"],
|
|
||||||
# fill_value="nein",
|
|
||||||
# ),
|
|
||||||
# ],
|
|
||||||
# ),
|
|
||||||
FormField(
|
FormField(
|
||||||
"Status && Projektrelevanz",
|
"Status && Projektrelevanz",
|
||||||
FormFieldType.GROUP,
|
FormFieldType.GROUP,
|
||||||
@@ -1304,7 +1148,6 @@ class AutoForm(QWidget):
|
|||||||
margin-top: 15px; /* Platz für die Überschrift schaffen */
|
margin-top: 15px; /* Platz für die Überschrift schaffen */
|
||||||
padding-top: 15px; /* Abstand zwischen Rahmen und erstem Feld */
|
padding-top: 15px; /* Abstand zwischen Rahmen und erstem Feld */
|
||||||
}
|
}
|
||||||
|
|
||||||
QGroupBox::title {
|
QGroupBox::title {
|
||||||
subcontrol-origin: margin;
|
subcontrol-origin: margin;
|
||||||
subcontrol-position: top left; /* Überschrift oben links */
|
subcontrol-position: top left; /* Überschrift oben links */
|
||||||
@@ -1842,19 +1685,7 @@ class SearchFormPage(QWidget):
|
|||||||
field = QLineEdit(placeholderText="...")
|
field = QLineEdit(placeholderText="...")
|
||||||
field.setText("22.04.2026")
|
field.setText("22.04.2026")
|
||||||
field.setReadOnly(True)
|
field.setReadOnly(True)
|
||||||
field.setStyleSheet("""
|
field.setProperty("styleClass", "stempel")
|
||||||
QLineEdit {
|
|
||||||
background-color: #f1f5f9; /* Helles System-Grau */
|
|
||||||
color: #333D4B; /* Etwas blassere Schrift */
|
|
||||||
border: 1px dashed #cbd5e1; /* Ein gestrichelter Rand wirkt oft wie ein "Stempel" */
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
/* Wenn das Feld fokussiert wird, keinen blauen Rand anzeigen */
|
|
||||||
QLineEdit:focus {
|
|
||||||
border: 1px #cbd5e1;
|
|
||||||
}
|
|
||||||
""")
|
|
||||||
field.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
|
field.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
|
||||||
inf_block_1.addWidget(label)
|
inf_block_1.addWidget(label)
|
||||||
inf_block_1.addWidget(field)
|
inf_block_1.addWidget(field)
|
||||||
|
|||||||
Reference in New Issue
Block a user