Exemple #1
0
class Weather(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Weather')
        self.setWindowIcon(QIcon('umbrella.png'))
        self.resize(300, 120)
        self.ui()
        self.show()

    def ui(self):
        vbox = QVBoxLayout()
        title = QLabel()
        title.setText('Weather')
        title.setStyleSheet('font: 20pt')
        title.setAlignment(Qt.AlignCenter)
        vbox.addWidget(title)
        hbox = QHBoxLayout()
        label = QLabel()
        label.setText('City Name:')
        label.setStyleSheet('font: 15px')
        self.textLine = QLineEdit()
        self.textLine.setMinimumHeight(30)
        hbox.addWidget(label)
        hbox.addWidget(self.textLine)
        vbox.addItem(hbox)
        button = QPushButton()
        button.setText('Search')
        button.setStyleSheet('font: 15px')
        button.setMinimumHeight(30)
        button.clicked.connect(self.checkText)
        vbox.addWidget(button)
        self.setLayout(vbox)

    def checkText(self):
        if not self.textLine.text().isalpha():
            message = QErrorMessage(self)
            message.showMessage('Invalid Entry! Try Again.')
            message.setWindowTitle('Warning')
            message.setWindowIcon(QIcon('error.png'))
        else:
            location = self.textLine.text()
            url = weather_url + location
            global json
            json = requests.get(url).json()
            try:
                json['message']
            except Exception:
                self.obj = ShowWeather()
            else:
                message = QErrorMessage(self)
                message.showMessage('Invalid City Name! Try Again.')
                message.setWindowTitle('Warning')
                message.setWindowIcon(QIcon('error.png'))