使用PyQt5在文本框中打印输出语句

问题描述 投票:0回答:1

我创建了一个小部件,小部件的过程从输入SQL.table_name开始,然后切换Run_analysis按钮以csv.file格式生成输出。提到的过程效果很好。但我仍然在较大的文本框中打印(print)语句。

enter image description here

class EpiClass:
    NR = 0
    R = 0
    CT = 0
    def __init__(self, obj):
        self.obj = obj
    def epi_calc(self):
        """Function to process EPI formula"""
        with open(FN, "w") as FL: #FN object FL
            for j in self.obj:
                if j[12] is not None and float(j[12]) != 0: #Exclude (Null, 0) values in Cre-j[12]
                    j12 = float(j[12])
                    type(j12)
                    #type(j[12]) #tested
                    #type(j[35]) #tested
                  {
                    Body of statement, assume it add two variable
                  }

        print("Total no of rows affected:", EpiClass.CT)
        print("No. of records not analysed:", EpiClass.NR)
        print("No. of records analysed:", EpiClass.R)

这里我们去PyQt5。

class WinClass(QMainWindow):
    """Main Window"""
    def __init__(self):
        super().__init__()
        self.title = 'EGFR Widget'
        self.left = 10
        self.top = 10
        self.width = 1920
        self.height = 1080
        self.init_ui()
    def init_ui(self):
        """Window Geometry"""
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)
        #label
        # Create textbox
        self.textbox = QLineEdit(self)
        self.textbox.move(20, 20)
        self.textbox.resize(280, 40)
        # Create a button in the window
        self.button = QPushButton('Run Analysis', self)
        self.button.move(20, 80)
        #Print affected Rows
        self.textbox2 = QLineEdit(self)
        self.textbox2.move(120, 120)
        self.textbox2.resize(880, 140)
        # connect button to function on_click
        self.button.clicked.connect(self.on_click)
        self.show()

    @pyqtSlot()
    def on_click(self):
        """Button Action function"""
        tb_value = str(self.textbox.text())
        new_class = Edb(tb_value)
        new_class.eclass()
######Im messed up in this step to print that 3 statements in textbox2#############
        tb2_value = str(self.textbox2.text(EpiClass.CT))
        #tb3_value = str(self.textbox2.text(EpiClass.NR))
        #tb4_value = str(self.textbox2.text(EpiClass.R))

if __name__ == '__main__':
    APP = QApplication(sys.argv)
    ex = WinClass()
    sys.exit(APP.exec_())

请建议一个代码来解决打印语句。非常感谢!

python python-3.x pyqt pyqt5
1个回答
0
投票

[您正在尝试使用只读方法text进行写,应该改用setText。我会将这些语句保存在某个变量中,并从您的小部件中进行访问,但这取决于您。希望对您有所帮助。

def on_click(self):
    """Button Action function"""
    tb_value = "Total no of rows affected: {}".format(EpiClass.CT)
    self.textbox2.setText(tb_value)
© www.soinside.com 2019 - 2024. All rights reserved.