Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Help Code Python



  • Hello,

    I created an interface with buttons and comboBoxes and I want to modify the value of DATA [1] which is in the send.py file each time I press a button it assigns it the new value of DAT1 .

    I have defined the functions of BTN1, BTN2, BTN3 for the push buttons

    I want to have an idea how to code to have the desired result

    de3b91b3-acd1-4605-b7c4-4603b569e800-image.png

    This is the code of my 2 file Python :

    from PCANBasic import *
    from exemple import *

    DAT1=0b11111111

    #Initialize the PCAN

    m_PCAN = PCANBasic()

    m_Result = m_PCAN.Initialize(PCAN_USBBUS1, PCAN_BAUD_500K)

    #SEND DATA of ARD1

    #####################################ARD1#####################
    ARD1 = TPCANMsg()

    ARD1.ID = 0x461
    ARD1.LEN =8
    ARD1.DATA[0] = 0x07
    ARD1.DATA[1] = DAT1

    print(ARD1.DATA[1])

    ARD1.MSGTYPE = PCAN_MESSAGE_STANDARD

    m_Result = m_PCAN.Write(PCAN_USBBUS1,ARD1)

    if m_Result == PCAN_ERROR_OK :
    print("ARD1 Send")
    else:
    print("ARD1 Not Send")

    m_PCAN.Uninitialize(PCAN_USBBUS1)

    THE CODE OF MY file qt python

    from PyQt5 import QtCore, QtGui, QtWidgets
    from send import *

    class Ui_Form(object):
    def setupUi(self, Form):
    Form.setObjectName("Form")
    Form.resize(975, 603)
    self.pushButton = QtWidgets.QPushButton(Form)
    self.pushButton.setGeometry(QtCore.QRect(130, 110, 91, 21))
    self.pushButton.setObjectName("pushButton")
    self.pushButton_2 = QtWidgets.QPushButton(Form)
    self.pushButton_2.setGeometry(QtCore.QRect(130, 170, 93, 21))
    self.pushButton_2.setObjectName("pushButton_2")
    self.comboBox = QtWidgets.QComboBox(Form)
    self.comboBox.setGeometry(QtCore.QRect(30, 110, 73, 22))
    self.comboBox.setObjectName("comboBox")
    self.comboBox.addItem("")
    self.comboBox.addItem("")
    self.comboBox_2 = QtWidgets.QComboBox(Form)
    self.comboBox_2.setGeometry(QtCore.QRect(30, 170, 73, 22))
    self.comboBox_2.setObjectName("comboBox_2")
    self.comboBox_2.addItem("")
    self.comboBox_2.addItem("")
    self.pushButton_3 = QtWidgets.QPushButton(Form)
    self.pushButton_3.setGeometry(QtCore.QRect(130, 230, 93, 21))
    self.pushButton_3.setObjectName("pushButton_3")
    self.comboBox_3 = QtWidgets.QComboBox(Form)
    self.comboBox_3.setGeometry(QtCore.QRect(30, 230, 73, 22))
    self.comboBox_3.setObjectName("comboBox_3")
    self.comboBox_3.addItem("")
    self.comboBox_3.addItem("")

        self.pushButton.clicked.connect(self.BTN1)
        self.pushButton_2.clicked.connect(self.BTN2)
        self.pushButton_3.clicked.connect(self.BTN3)
    
        
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
    
    
    
    def BTN1(self,DAT1):
    
        x=int(self.comboBox.currentText())
    
        if x == 1:
    
            a= 0b00000111 or DAT1
            DAT1 = a
    
            print("Communication BTN1 Detected")
            return DAT1
        elif x == 0:
    
            b= 0b11111000 and DAT1
            DAT1 = b
    
            print("Communication BTN1 NOT Detected")
    
            return DAT1
        
    def BTN2(self,DAT1):
    
        x=int(self.comboBox_2.currentText())
    
        if x == 1:
    
            a= 0b00111000 or DAT1
            DAT1 = a
            
                
                
            print("Communication BTN2 Detected")
            return DAT1
        elif x == 0:
    
    
            b= 0b11000111 and DAT1
            DAT1 = b
    
            print("Communication BTN2 NOT Detected")
    
            return DAT1
    
    def BTN3(self,DAT1):
        x=int(self.comboBox_3.currentText())
    
        if x == 1:
    
            a= 0b11000000 or DAT1
            DAT1 = a
       
            print("Communication BTN3 Detected")
            return DAT1
        elif x == 0:
    
    
            b= 0b00111111 and DATA1
            DATA1 = b
    
            print("Communication BTN3 NOT Detected")
    
            return DAT1
    
    
    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "BTN1"))
        self.pushButton_2.setText(_translate("Form", "BTN2"))
        self.comboBox.setItemText(0, _translate("Form", "1"))
        self.comboBox.setItemText(1, _translate("Form", "0"))
        self.comboBox_2.setItemText(0, _translate("Form", "1"))
        self.comboBox_2.setItemText(1, _translate("Form", "0"))
        self.pushButton_3.setText(_translate("Form", "BTN3"))
        self.comboBox_3.setItemText(0, _translate("Form", "1"))
        self.comboBox_3.setItemText(1, _translate("Form", "0"))
    

    if name == "main":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    First you should encapsulate your PCAN related code in a proper class so you can more easily use it from your GUI.

    Then what is DAT1 supposed to be as your slot parameter ?


Log in to reply