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
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
Código:
# el código es para guarrear y aprender los diferentes Widgets en QT y python.
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import * #QApplication, QWidget, QPushButton, QLabel, QToolTip, QAbstractButton,QDateTimeEdit,QDateEdit,QTimeEdit
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(582, 456)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label1 = QtWidgets.QLabel(self.centralwidget)
self.label1.setEnabled(True)
self.label1.setGeometry(QtCore.QRect(20, 12, 291, 91))
self.label1.setText("")
self.label1.setObjectName("label1")
self.pushButton1 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton1.setGeometry(QtCore.QRect(144, 180, 112, 32))
self.pushButton1.setObjectName("pushButton1")
self.pushButton2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton2.setGeometry(QtCore.QRect(30, 180, 112, 32))
self.pushButton2.setObjectName("pushButton2")
self.checkBox1 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox1.setGeometry(QtCore.QRect(10, 130, 86, 20))
self.checkBox1.setObjectName("checkBox1")
self.lcdNumber1 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber1.setGeometry(QtCore.QRect(110, 220, 64, 23))
self.lcdNumber1.setObjectName("lcdNumber1")
self.lineEdit1 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit1.setGeometry(QtCore.QRect(150, 130, 113, 21))
self.lineEdit1.setObjectName("lineEdit1")
self.horizontalSlider1 = QtWidgets.QSlider(self.centralwidget)
self.horizontalSlider1.setGeometry(QtCore.QRect(50, 270, 160, 22))
self.horizontalSlider1.setMaximum(100)
self.horizontalSlider1.setOrientation(QtCore.Qt.Horizontal)
self.horizontalSlider1.setObjectName("horizontalSlider1")
self.dateTimeEdit = QtWidgets.QDateTimeEdit(self.centralwidget)
self.dateTimeEdit.setGeometry(QtCore.QRect(340, 180, 194, 22))
self.dateTimeEdit.setObjectName("dateTimeEdit")
self.pushButtonTime = QtWidgets.QPushButton(self.centralwidget)
self.pushButtonTime.setGeometry(QtCore.QRect(340, 230, 112, 32))
self.pushButtonTime.setObjectName("pushButtonTime")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 582, 22))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton1.clicked.connect(self.printButtonPressed) # PASA con este Boton por ejemplo!
self.pushButton2.clicked.connect(QtCore.QCoreApplication.instance().quit)# Pushbutton Exit
self.pushButtonTime.clicked.connect(self.settingDateTime) # PASA con este Boton por ejemplo!
self.checkBox1.clicked.connect(self.checkboxChanged)
self.lineEdit1.textChanged.connect(self.textChanged) # De esta forma se hace dinamico el cambio de Texto
self.horizontalSlider1.valueChanged.connect(self.LCDBox)
self.dateTimeEdit.dateTimeChanged.connect(self.settingDateTime)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Testing bench"))
self.pushButton2.setText(_translate("MainWindow", "Exit"))
self.pushButton1.setText(_translate("MainWindow", "Push Me!"))
self.checkBox1.setText(_translate("MainWindow", "CheckBox"))
self.pushButtonTime.setText(_translate("MainWindow", "Date and Time"))
def printButtonPressed(self): #Este método
# This is executed when the button is pressed
print('printButtonPressed')
self.label1.setText("")
self.label1.setText("Hello!!")
def checkboxChanged(self):
self.label1.setText("")
self.label1.setText("True" if self.checkBox1.checkState() else
"False")
def LCDBox(self,event):
print(event)
self.lcdNumber1.display(event)
def textChanged(self,text):
#self.label1.setText(self.lineEdit1.text()) // Sino pongo en el parametro Text, tengo q poner self.lineEdit1.text()
self.label1.setText(text)
def settingDateTime(self):
act_Date = QtCore.QDate.currentDate()
act_Time = QtCore.QTime.currentTime()
act_DateTime = QtCore.QDateTime.currentDateTime()
In_Date = self.dateTimeEdit.date()
In_Time = self.dateTimeEdit.time()
#xmas2 = QtCore.QDate(2020,12,24)
xmas2 = QtCore.QDate(In_Date)
print("1)" + " " + act_Date.toString() + " " + act_Time.toString())
print("2)" + " " + act_Date.toString(Qt.ISODate))
print("3)" + " " + act_DateTime.toString(Qt.DefaultLocaleLongDate))
nofdays = act_Date.daysTo(xmas2)
print("4)" + " " + f"There are {nofdays} days until next Xmas")
self.label1.setText("4)" + " " + f"There are {nofdays} days until next Xmas")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())