Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
PyQt5, Problema con mostrar texto en un label al pulsar botón. Problema de Refresco?
#1
Hola a todos!

soy nuevo en el foro y también en Python.
el Problema que tengo es bastante sencillo, seguramente.
El tipico Hello world. Se pulsa un Pushbutton y sale en un label texto. Pues el problema es que el texto sale solo si cambio el tamaño de la ventana. En cambio si hago lo mismo con un Checkbox. Sale el Texto inmediatamente.pq?
Qué puedo hacer? 
Muchas gracias de antemano

  1. # el código es para guarrear y aprender los diferentes Widgets en QT y python.
  2. from PyQt5 import QtCore, QtGui, QtWidgets
  3. from PyQt5.QtWidgets import * #QApplication, QWidget, QPushButton, QLabel, QToolTip, QAbstractButton,QDateTimeEdit,QDateEdit,QTimeEdit
  4. from PyQt5.QtGui import *
  5. from PyQt5.QtCore import *
  6.  
  7. class Ui_MainWindow(object):
  8.  
  9.     def setupUi(self, MainWindow):
  10.         MainWindow.setObjectName("MainWindow")
  11.         MainWindow.resize(582, 456)
  12.         self.centralwidget = QtWidgets.QWidget(MainWindow)
  13.         self.centralwidget.setObjectName("centralwidget")
  14.         self.label1 = QtWidgets.QLabel(self.centralwidget)
  15.         self.label1.setEnabled(True)
  16.         self.label1.setGeometry(QtCore.QRect(20, 12, 291, 91))
  17.         self.label1.setText("")
  18.         self.label1.setObjectName("label1")
  19.         self.pushButton1 = QtWidgets.QPushButton(self.centralwidget)
  20.         self.pushButton1.setGeometry(QtCore.QRect(144, 180, 112, 32))
  21.         self.pushButton1.setObjectName("pushButton1")
  22.         self.pushButton2 = QtWidgets.QPushButton(self.centralwidget)
  23.         self.pushButton2.setGeometry(QtCore.QRect(30, 180, 112, 32))
  24.         self.pushButton2.setObjectName("pushButton2")
  25.         self.checkBox1 = QtWidgets.QCheckBox(self.centralwidget)
  26.         self.checkBox1.setGeometry(QtCore.QRect(10, 130, 86, 20))
  27.         self.checkBox1.setObjectName("checkBox1")
  28.         self.lcdNumber1 = QtWidgets.QLCDNumber(self.centralwidget)
  29.         self.lcdNumber1.setGeometry(QtCore.QRect(110, 220, 64, 23))
  30.         self.lcdNumber1.setObjectName("lcdNumber1")
  31.         self.lineEdit1 = QtWidgets.QLineEdit(self.centralwidget)
  32.         self.lineEdit1.setGeometry(QtCore.QRect(150, 130, 113, 21))
  33.         self.lineEdit1.setObjectName("lineEdit1")
  34.         self.horizontalSlider1 = QtWidgets.QSlider(self.centralwidget)
  35.         self.horizontalSlider1.setGeometry(QtCore.QRect(50, 270, 160, 22))
  36.         self.horizontalSlider1.setMaximum(100)
  37.         self.horizontalSlider1.setOrientation(QtCore.Qt.Horizontal)
  38.         self.horizontalSlider1.setObjectName("horizontalSlider1")
  39.         self.dateTimeEdit = QtWidgets.QDateTimeEdit(self.centralwidget)
  40.         self.dateTimeEdit.setGeometry(QtCore.QRect(340, 180, 194, 22))
  41.         self.dateTimeEdit.setObjectName("dateTimeEdit")
  42.         self.pushButtonTime = QtWidgets.QPushButton(self.centralwidget)
  43.         self.pushButtonTime.setGeometry(QtCore.QRect(340, 230, 112, 32))
  44.         self.pushButtonTime.setObjectName("pushButtonTime")
  45.         MainWindow.setCentralWidget(self.centralwidget)
  46.         self.menubar = QtWidgets.QMenuBar(MainWindow)
  47.         self.menubar.setGeometry(QtCore.QRect(0, 0, 582, 22))
  48.         self.menubar.setObjectName("menubar")
  49.         MainWindow.setMenuBar(self.menubar)
  50.         self.statusbar = QtWidgets.QStatusBar(MainWindow)
  51.         self.statusbar.setObjectName("statusbar")
  52.         MainWindow.setStatusBar(self.statusbar)
  53.  
  54.         self.retranslateUi(MainWindow)
  55.         QtCore.QMetaObject.connectSlotsByName(MainWindow)
  56.  
  57.         self.pushButton1.clicked.connect(self.printButtonPressed) # PASA con este Boton por ejemplo!
  58.         self.pushButton2.clicked.connect(QtCore.QCoreApplication.instance().quit)# Pushbutton Exit
  59.         self.pushButtonTime.clicked.connect(self.settingDateTime) # PASA con este Boton por ejemplo!
  60.  
  61.         self.checkBox1.clicked.connect(self.checkboxChanged)
  62.  
  63.  
  64.         self.lineEdit1.textChanged.connect(self.textChanged) # De esta forma se hace dinamico el cambio de Texto
  65.  
  66.         self.horizontalSlider1.valueChanged.connect(self.LCDBox)
  67.  
  68.         self.dateTimeEdit.dateTimeChanged.connect(self.settingDateTime)
  69.  
  70.     def retranslateUi(self, MainWindow):
  71.         _translate = QtCore.QCoreApplication.translate
  72.         MainWindow.setWindowTitle(_translate("MainWindow", "Testing bench"))
  73.         self.pushButton2.setText(_translate("MainWindow", "Exit"))
  74.         self.pushButton1.setText(_translate("MainWindow", "Push Me!"))
  75.         self.checkBox1.setText(_translate("MainWindow", "CheckBox"))
  76.         self.pushButtonTime.setText(_translate("MainWindow", "Date and Time"))
  77.  
  78.  
  79.     def printButtonPressed(self): #Este método
  80.         # This is executed when the button is pressed
  81.         print('printButtonPressed')
  82.         self.label1.setText("")
  83.         self.label1.setText("Hello!!")
  84.  
  85.     def checkboxChanged(self):
  86.         self.label1.setText("")
  87.         self.label1.setText("True" if self.checkBox1.checkState() else
  88.                             "False")
  89.     def LCDBox(self,event):
  90.         print(event)
  91.         self.lcdNumber1.display(event)
  92.  
  93.     def textChanged(self,text):
  94.         #self.label1.setText(self.lineEdit1.text())  // Sino pongo en el parametro Text, tengo q poner self.lineEdit1.text()
  95.         self.label1.setText(text)
  96.  
  97.     def settingDateTime(self):
  98.         act_Date = QtCore.QDate.currentDate()
  99.         act_Time = QtCore.QTime.currentTime()
  100.         act_DateTime = QtCore.QDateTime.currentDateTime()
  101.         In_Date = self.dateTimeEdit.date()
  102.         In_Time = self.dateTimeEdit.time()
  103.  
  104.         #xmas2 = QtCore.QDate(2020,12,24)
  105.         xmas2 = QtCore.QDate(In_Date)
  106.  
  107.  
  108.         print("1)" + " " + act_Date.toString() + " " + act_Time.toString())
  109.         print("2)" + " " + act_Date.toString(Qt.ISODate))
  110.         print("3)" + " " + act_DateTime.toString(Qt.DefaultLocaleLongDate))
  111.  
  112.         nofdays = act_Date.daysTo(xmas2)
  113.         print("4)" + " " + f"There are {nofdays} days until next Xmas")
  114.         self.label1.setText("4)" + " " + f"There are {nofdays} days until next Xmas")
  115.        
  116.  
  117.  
  118. if __name__ == "__main__":
  119.     import sys
  120.     app = QtWidgets.QApplication(sys.argv)
  121.     MainWindow = QtWidgets.QMainWindow()
  122.     ui = Ui_MainWindow()
  123.     ui.setupUi(MainWindow)
  124.     MainWindow.show()
  125.     sys.exit(app.exec_())
Responder


Mensajes en este tema
PyQt5, Problema con mostrar texto en un label al pulsar botón. Problema de Refresco? - por gita07 - 20-11-2020, 07:06 PM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)