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
- # 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_())