Jump to content

Variable im Dialog anzeigen


---
 Share

Recommended Posts

Hallo!

Ich versuche in einem Dialog eine Variable im Fließtextfeld anzuzeigen. Das gelingt mir nur bedingt.

In der oberen Ausgabe des Dialogs wäre der Text formatiert (größere Schriftart, fett, und mittig), bekomme aber die Variable y da nicht angezeigt.

Im unteren Textfeld bekomme ich die Ausgabe mit dem Umweg einer formatierten Variable (output) hin, kann aber den Text nur bedingt formatieren (nicht fett und nicht mittig).

Wie könnte da eine Lösung aussehen die Variable in dem oberen Teil mit auszugeben?

import gom

y = 0
for x in range (0,10):
	y = y + 1	
	name = f"Anzahl {y}"
	print(name)
	DIALOG=gom.script.sys.create_user_defined_dialog (content='<dialog>' \
' <title>Nächste Messung</title>' \
' <style></style>' \
' <control id="OkCancel"/>' \
' <position>center</position>' \
' <embedding>always_toplevel</embedding>' \
' <sizemode>automatic</sizemode>' \
' <size height="233" width="400"/>' \
' <content columns="1" rows="2">' \
'  <widget columnspan="1" row="0" type="display::text" column="0" rowspan="1">' \
'   <name>text</name>' \
'   <tooltip></tooltip>' \
'   <text>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">' \
'&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">' \
'p, li { white-space: pre-wrap; }' \
'&lt;/style>&lt;/head>&lt;body style="    ">' \
'&lt;p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-size:18pt; font-weight:600;"> Anzahl: &lt;/span>&lt;/p>&lt;/body>&lt;/html></text>' \
'   <wordwrap>false</wordwrap>' \
'  </widget>' \
'  <widget columnspan="1" row="1" type="display::text" column="0" rowspan="1">' \
'   <name>text_1</name>' \
'   <tooltip></tooltip>' \
'   <text></text>' \
'   <wordwrap>false</wordwrap>' \
'  </widget>' \
' </content>' \
'</dialog>')

	#
	# Event handler function called if anything happens inside of the dialog
	#
	def dialog_event_handler (widget):
		pass
	
	DIALOG.handler = dialog_event_handler
	print( DIALOG.text_1.__doc__ )
	DIALOG.text_1.default_font_size = 18
	output = f"Anzahl: {y}"
	#print (output)
	DIALOG.text_1.text = output
	RESULT=gom.script.sys.show_user_defined_dialog (dialog=DIALOG)

Mit freundlichen Grüßen E. Pusch

Link to comment
Share on other sites

Hi,

dem "text"-Knoten eines Widgets vom Typ "display::text" kann man beliebigen CSS-formatierten HTML-Code zuweisen. Im konkreten Fall würde es reichen die Zeile

	output = f"Anzahl: {y}"

durch folgende Zeile zu ersetzen (Achtung mit " und ' ).

	output = f'<p align="center" style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style="font-size:18pt; font-weight:600;">Anzahl: {y}</span></p>'

Klärt dies das Problem verständlich?

Link to comment
Share on other sites

Hallo!

Prima, das funktioniert! War mir nicht bewusst das man das so verschachteln kann. Dankeschön!

Mit freundlichen Grüßen

E. Pusch

Link to comment
Share on other sites

 Share

×
×
  • Create New...