Die UI – Masken erlauben auch die Verwendung und Konfiguration von Radio – Schaltern. Bei Radio – Schaltern gilt, dass wenn einer der Schalter aktiv ist, alle anderen deaktiviert werden, so dass immer nur einer von mehreren Möglichkeiten verwendet werden kann. Bei den QT Masken müssen Radio – Buttons daher in einen Rahmen eingefügt werden, damit diese als zusammen gehörende Gruppe erkannt werden.
In diesem Beispiel werden die Radio-Schalter so einstellen, dass die Optionen abhängig vom gewählten Innensparren ausgewählt werden.
Dazu erstellen wir uns in unserem In-Skript eine Funktion zum Abfragen welcher Variant von Innensparren in der Zeichnung vorhanden ist.
def initSparrenAuswahl(sc):listeSparren1 = kkp.Objektliste2Erstellen(sc.objnr() , „900.001.010.100.030.0010“)listeSparren2 = kkp.Objektliste2Erstellen(sc.objnr() , „900.001.010.100.030.0012“)listeSparren3 = kkp.Objektliste2Erstellen(sc.objnr() , „900.001.010.100.030.0015“)if len(listeSparren1) > 0: pass #TODOif len(listeSparren2) > 0: pass #TODOif len(listeSparren3) > 0: pass #TODO
Das Modul SegmentConfig liefert uns eine praktische Funktion um den entsprechenden Radio – Button auszuwählen.
def initSparrenAuswahl(sc):listeSparren1 = kkp.Objektliste2Erstellen(sc.objnr() , „900.001.010.100.030.0010“)listeSparren2 = kkp.Objektliste2Erstellen(sc.objnr() , „900.001.010.100.030.0012“)listeSparren3 = kkp.Objektliste2Erstellen(sc.objnr() , „900.001.010.100.030.0015“)if len(listeSparren1) > 0: sc.selectRadioButton(„radioRafters1“)if len(listeSparren2) > 0: sc.selectRadioButton(„radioRafters2“)if len(listeSparren3) > 0: sc.selectRadioButton(„radioRafters3“)
def createXML():try: iObjNr = int(XML_PARAM)except: iObjNr = 0sc = SC.SegmentConfig(iObjNr)sc.setWindowTitle(„Hello UI!“)initSparrenAuswahl(sc)initAchsabstand(sc)sXml = sc.toXml()return sXmlif __name__ == ‚__main__‘:sXml = createXML()print(sXml)
def setSparrenauswahl(sc):a = sc.findByName(„radioRafters1“)b = sc.findByName(„radioRafters2“)c = sc.findByName(„radioRafters3“)ifaisNone: returnif b is None: returnif c is None: returnif a.m_sValue == „1“:kkp.Profil_in_Gruppe_tauschen(sc.objnr() , „900.001.010.100.030.0010“)if b.m_sValue == „1“:kkp.Profil_in_Gruppe_tauschen(sc.objnr() , „900.001.010.100.030.0012“)if c.m_sValue == „1“:kkp.Profil_in_Gruppe_tauschen(sc.objnr() , „900.001.010.100.030.0015“)
def setSparrenauswahl(sc):a = sc.findByName(„radioRafters1“)b = sc.findByName(„radioRafters2“)c = sc.findByName(„radioRafters3“)if a is None: returnif b is None: returnif c is None: returnif a.m_sValue == „1“:kkp.Profil_in_Gruppe_tauschen(sc.objnr() , „900.001.010.100.030.0010“)kkp.Profil_in_Gruppe_tauschen(100 , „900.001.010.100.040.0010“)kkp.Profil_in_Gruppe_tauschen(100 , „900.001.010.100.050.0010“)if b.m_sValue == „1“:kkp.Profil_in_Gruppe_tauschen(sc.objnr() , „900.001.010.100.030.0012“)kkp.Profil_in_Gruppe_tauschen(100 , „900.001.010.100.040.0010“)kkp.Profil_in_Gruppe_tauschen(100 , „900.001.010.100.050.0010“)if c.m_sValue == „1“:kkp.Profil_in_Gruppe_tauschen(sc.objnr() , „900.001.010.100.030.0015“)kkp.Profil_in_Gruppe_tauschen(100 , „900.001.010.100.040.0012“)kkp.Profil_in_Gruppe_tauschen(100 , „900.001.010.100.050.0012“)