繁体   English   中英

单击按钮时如何在多个QLabel中打印?

[英]How do I print in multiple QLabel when I click the PushButton?

单击“按钮”时如何在多个QLabel中打印?,因为它仅适用于“数量”,所以我也希望在“商品名称”和“价格”中使用它。 我试着放多个print_click(self),它说重新定义未使用的'print_clink'不会起作用。 提前致谢

我的代码:

import sys 
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QLabel, QLineEdit
from PyQt5.QtCore import pyqtSlot`

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.ItemName = QLabel('Item Name:')
        self.Item_Line = QLabel('')
        self.Item_Name = QLineEdit('')
        self.PriceName = QLabel('Price:')
        self.Price_Line = QLabel('')
        self.Price_Name = QLineEdit('')
        self.QuantityName = QLabel('Quantity:')
        self.Quantity_Line = QLabel('0')
        self.Quantity_Name = QLineEdit()   
        self.Update_button = QPushButton("Update")
        self.Update_button.clicked.connect(self.print_click)
        self.Clear_button = QPushButton("Clear")
        self.Clear_button.clicked.connect(self.clear_click)
        hbox = QHBoxLayout(self)  
        hbox.addWidget(self.ItemName)
        hbox.addWidget(self.Item_Name)
        hbox.addWidget(self.PriceName)
        hbox.addWidget(self.Price_Name)
        hbox.addWidget(self.QuantityName)
        hbox.addWidget(self.Quantity_Line)
        hbox.addWidget(self.Quantity_Name)
        hbox.addWidget(self.Update_button)
        hbox.addWidget(self.Clear_button)
        self.show()         
        self.Clear_button.clicked.connect(self.Item_Line.clear)
        self.Clear_button.clicked.connect(self.Item_Name.clear)          
        self.Clear_button.clicked.connect(self.Price_Line.clear)
        self.Clear_button.clicked.connect(self.Price_Name.clear)            
        self.Clear_button.clicked.connect(self.Quantity_Line.clear)
        self.Clear_button.clicked.connect(self.Quantity_Name.clear)           
    @pyqtSlot()
    def print_click(self):
        self.Quantity_Line.setText(self.Quantity_Name.text())

    def clear_click(self):
        self.Quantity_Line(self.Quantity_Name.text(''))
        return self.Quantity


if __name__ == "__main__":

    app = QApplication(sys.argv)
    win = Window()
    sys.exit(app.exec_())

我不能完全确定预期的结果,但是我猜您的代码中存在一些错误和冗余:

  • 没有将Price_LineItem_Line添加到QHBoxLayout
  • 该方法print_click没有设置从文本Price_NameItem_Name在相应Price_LineItem_Line
  • clear_click方法并不是真正有用,因为您已经连接了该按钮上所有其他元素的clear方法。

以下代码是根据您的代码改编而成的,请注意上述几点:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QLabel, QLineEdit
from PyQt5.QtCore import pyqtSlot

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.ItemName = QLabel('Item Name:')
        self.Item_Line = QLabel('')
        self.Item_Name = QLineEdit()

        self.PriceName = QLabel('Price:')
        self.Price_Line = QLabel('')
        self.Price_Name = QLineEdit()

        self.QuantityName = QLabel('Quantity:')
        self.Quantity_Line = QLabel('0')
        self.Quantity_Name = QLineEdit()

        self.Update_button = QPushButton("Update")
        self.Update_button.clicked.connect(self.print_click)
        self.Clear_button = QPushButton("Clear")

        hbox = QHBoxLayout(self)
        hbox.addWidget(self.ItemName)
        hbox.addWidget(self.Item_Line)
        hbox.addWidget(self.Item_Name)
        hbox.addWidget(self.PriceName)
        hbox.addWidget(self.Price_Line)
        hbox.addWidget(self.Price_Name)
        hbox.addWidget(self.QuantityName)
        hbox.addWidget(self.Quantity_Line)
        hbox.addWidget(self.Quantity_Name)
        hbox.addWidget(self.Update_button)
        hbox.addWidget(self.Clear_button)

        self.show()

        self.Clear_button.clicked.connect(self.Item_Line.clear)
        self.Clear_button.clicked.connect(self.Item_Name.clear)

        self.Clear_button.clicked.connect(self.Price_Line.clear)
        self.Clear_button.clicked.connect(self.Price_Name.clear)

        self.Clear_button.clicked.connect(self.Quantity_Line.clear)
        self.Clear_button.clicked.connect(self.Quantity_Name.clear)

    def print_click(self):
        self.Price_Line.setText(self.Price_Name.text())
        self.Item_Line.setText(self.Item_Name.text())
        self.Quantity_Line.setText(self.Quantity_Name.text())

if __name__ == "__main__":

    app = QApplication(sys.argv)
    win = Window()
    sys.exit(app.exec_())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM