Как мне печатать в нескольких QLabel, когда я нажимаю кнопку? - PullRequest
0 голосов
/ 10 марта 2019

Как печатать в нескольких 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_())

1 Ответ

0 голосов
/ 10 марта 2019

Я не совсем уверен в ожидаемом результате, но, думаю, в вашем коде есть некоторые ошибки и избыточности:

  • Price_Line и Item_Line не были добавлены в QHBoxLayout
  • метод print_click не устанавливал текст из Price_Name и Item_Name для соответствующих Price_Line и Item_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_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...