Intelligent mirror design based on Dragonboard 410c (8) - Python script to implement UI prototype

In the previous article, I have already introduced you to the UI prototype design of the smart mirror, and used the designer.exe tool to complete the original magic mirror UI interface design. It can be seen that the UI design of the entire mirror is very simple, but If we want a solid and good effect, we use the designer.exe tool alone to complete the problem. This requires us to further modify and refine the xml file obtained after the prototype design to meet our design requirements.

Here, you can directly modify the attributes of the xml element of the designer.exe file to adjust and refine the UI. You can also use the pyuic5 tool to convert it into a py script, and then modify it. This article is used directly in the design. The pyuic5 tool converts it and then modifies it. The resulting UI code is as follows:

# -*- coding: utf-8 -*-

From PyQt5 import QtCore, QtGui, QtWidgets

Class Ui_MainWindow(object):

Def setupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")

desktopRect=QtWidgets.QDesktopWidget().screenGeometry()

MainWindow.resize(desktopRect.width(), desktopRect.height())

Icon = QtGui.QIcon()

icon.addPixmap(QtGui.QPixmap(":/images/icon"), QtGui.QIcon.Normal, QtGui.QIcon.Off)

MainWindow.setWindowIcon(icon)

self.centralWidget = QtWidgets.QWidget(MainWindow)

self.centralWidget.setObjectName("centralWidget")

self.centralWidget.resize(357, 1059)

Self.temp = QtWidgets.QLabel(self.centralWidget)

self.centralWidget.setGeometry(desktopRect.width()-self.centralWidget.width(),0,self.centralWidget.width(),self.centralWidget.height())

self.temp.setGeometry(QtCore.QRect(20, 60, 231, 100))

Font = QtGui.QFont()

font.setFamily("楷")

font.setPointSize(40)

font.setBold(False)

font.setWeight(50)

self.temp.setFont(font)

self.temp.setText("")

self.temp.setAlignment(QtCore.Qt.AlignCenter)

self.temp.setObjectName("temp")

Self.city = QtWidgets.QLabel(self.centralWidget)

self.city.setGeometry(QtCore.QRect(50, 160, 150, 30))

Font = QtGui.QFont()

font.setPointSize(13)

font.setBold(True)

font.setWeight(75)

self.city.setFont(font)

self.city.setText("")

self.city.setAlignment(QtCore.Qt.AlignCenter)

self.city.setObjectName("city")

Self.date = QtWidgets.QLabel(self.centralWidget)

self.date.setGeometry(QtCore.QRect(30, 245, 211, 25))

Font = QtGui.QFont()

font.setPointSize(10)

font.setBold(True)

font.setWeight(75)

self.date.setFont(font)

self.date.setText("")

self.date.setAlignment(QtCore.Qt.AlignCenter)

self.date.setObjectName("date")

self.closeButton = QtWidgets.QPushButton(self.centralWidget)

self.closeButton.setGeometry(QtCore.QRect(240, 5, 25, 25))

self.closeButton.setCursor(QtGui.QCursor(QtCore.Qt.PoinTIngHandCursor))

self.closeButton.setText("")

self.closeButton.setFlat(True)

self.closeButton.setObjectName("closeButton")

#self.layoutWidget = QtWidgets.QWidget(self.centralWidget)

self.layoutWidget = QtWidgets.QWidget(MainWindow)

self.layoutWidget.setGeometry(QtCore.QRect(0, desktopRect.height()-170, desktopRect.width(), 170))

self.layoutWidget.setObjectName("layoutWidget")

self.horizontalLayout = QtWidgets.QHBoxLayout(self.layoutWidget)

self.horizontalLayout.setContentsMargins(11, 11, 11, 11)

self.horizontalLayout.setSpacing(6)

self.horizontalLayout.setObjectName("horizontalLayout")

self.gridLayout = QtWidgets.QGridLayout()

self.gridLayout.setContentsMargins(11, 11, 11, 11)

self.gridLayout.setSpacing(8)

self.gridLayout.setObjectName("gridLayout")

Self.forecast_0_date = QtWidgets.QLabel(self.layoutWidget)

self.forecast_0_date.setMinimumSize(QtCore.QSize(80, 20))

self.forecast_0_date.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_0_date.setFont(font)

self.forecast_0_date.setText("")

self.forecast_0_date.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_0_date.setObjectName("forecast_0_date")

self.gridLayout.addWidget(self.forecast_0_date, 0, 0, 1, 1)

Self.forecast_0_type = QtWidgets.QLabel(self.layoutWidget)

self.forecast_0_type.setMinimumSize(QtCore.QSize(78, 75))

self.forecast_0_type.setText("")

self.forecast_0_type.setScaledContents(True)

self.forecast_0_type.setObjectName("forecast_0_type")

self.gridLayout.addWidget(self.forecast_0_type, 1, 0, 1, 1)

Self.forecast_0_temp = QtWidgets.QLabel(self.layoutWidget)

self.forecast_0_temp.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_0_temp.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_0_temp.setFont(font)

self.forecast_0_temp.setText("")

self.forecast_0_temp.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_0_temp.setObjectName("forecast_0_temp")

self.gridLayout.addWidget(self.forecast_0_temp, 2, 0, 1, 1)

self.horizontalLayout.addLayout(self.gridLayout)

self.gridLayout_2 = QtWidgets.QGridLayout()

self.gridLayout_2.setContentsMargins(11, 11, 11, 11)

self.gridLayout_2.setSpacing(8)

self.gridLayout_2.setObjectName("gridLayout_2")

Self.forecast_1_date = QtWidgets.QLabel(self.layoutWidget)

self.forecast_1_date.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_1_date.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_1_date.setFont(font)

self.forecast_1_date.setText("")

self.forecast_1_date.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_1_date.setObjectName("forecast_1_date")

self.gridLayout_2.addWidget(self.forecast_1_date, 0, 0, 1, 1)

Self.forecast_1_type = QtWidgets.QLabel(self.layoutWidget)

self.forecast_1_type.setMinimumSize(QtCore.QSize(78, 75))

self.forecast_1_type.setText("")

self.forecast_1_type.setScaledContents(True)

self.forecast_1_type.setObjectName("forecast_1_type")

self.gridLayout_2.addWidget(self.forecast_1_type, 1, 0, 1, 1)

Self.forecast_1_temp = QtWidgets.QLabel(self.layoutWidget)

self.forecast_1_temp.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_1_temp.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_1_temp.setFont(font)

self.forecast_1_temp.setText("")

self.forecast_1_temp.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_1_temp.setObjectName("forecast_1_temp")

self.gridLayout_2.addWidget(self.forecast_1_temp, 2, 0, 1, 1)

self.horizontalLayout.addLayout(self.gridLayout_2)

self.gridLayout_3 = QtWidgets.QGridLayout()

self.gridLayout_3.setContentsMargins(11, 11, 11, 11)

self.gridLayout_3.setSpacing(6)

self.gridLayout_3.setObjectName("gridLayout_3")

Self.forecast_2_date = QtWidgets.QLabel(self.layoutWidget)

self.forecast_2_date.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_2_date.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_2_date.setFont(font)

self.forecast_2_date.setText("")

self.forecast_2_date.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_2_date.setObjectName("forecast_2_date")

self.gridLayout_3.addWidget(self.forecast_2_date, 0, 0, 1, 1)

Self.forecast_2_type = QtWidgets.QLabel(self.layoutWidget)

self.forecast_2_type.setMinimumSize(QtCore.QSize(78, 75))

self.forecast_2_type.setText("")

self.forecast_2_type.setScaledContents(True)

self.forecast_2_type.setObjectName("forecast_2_type")

self.gridLayout_3.addWidget(self.forecast_2_type, 1, 0, 1, 1)

Self.forecast_2_temp = QtWidgets.QLabel(self.layoutWidget)

self.forecast_2_temp.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_2_temp.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_2_temp.setFont(font)

self.forecast_2_temp.setText("")

self.forecast_2_temp.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_2_temp.setObjectName("forecast_2_temp")

self.gridLayout_3.addWidget(self.forecast_2_temp, 2, 0, 1, 1)

self.horizontalLayout.addLayout(self.gridLayout_3)

self.gridLayout_4 = QtWidgets.QGridLayout()

self.gridLayout_4.setContentsMargins(11, 11, 11, 11)

self.gridLayout_4.setSpacing(6)

self.gridLayout_4.setObjectName("gridLayout_4")

Self.forecast_3_date = QtWidgets.QLabel(self.layoutWidget)

self.forecast_3_date.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_3_date.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_3_date.setFont(font)

self.forecast_3_date.setText("")

self.forecast_3_date.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_3_date.setObjectName("forecast_3_date")

self.gridLayout_4.addWidget(self.forecast_3_date, 0, 0, 1, 1)

Self.forecast_3_type = QtWidgets.QLabel(self.layoutWidget)

self.forecast_3_type.setMinimumSize(QtCore.QSize(78, 75))

self.forecast_3_type.setText("")

self.forecast_3_type.setScaledContents(True)

self.forecast_3_type.setObjectName("forecast_3_type")

self.gridLayout_4.addWidget(self.forecast_3_type, 1, 0, 1, 1)

Self.forecast_3_temp = QtWidgets.QLabel(self.layoutWidget)

self.forecast_3_temp.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_3_temp.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_3_temp.setFont(font)

self.forecast_3_temp.setText("")

self.forecast_3_temp.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_3_temp.setObjectName("forecast_3_temp")

self.gridLayout_4.addWidget(self.forecast_3_temp, 2, 0, 1, 1)

self.horizontalLayout.addLayout(self.gridLayout_4)

self.gridLayout_5 = QtWidgets.QGridLayout()

self.gridLayout_5.setContentsMargins(11, 11, 11, 11)

self.gridLayout_5.setSpacing(6)

self.gridLayout_5.setObjectName("gridLayout_5")

Self.forecast_4_date = QtWidgets.QLabel(self.layoutWidget)

self.forecast_4_date.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_4_date.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_4_date.setFont(font)

self.forecast_4_date.setText("")

self.forecast_4_date.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_4_date.setObjectName("forecast_4_date")

self.gridLayout_5.addWidget(self.forecast_4_date, 0, 0, 1, 1)

Self.forecast_4_temp = QtWidgets.QLabel(self.layoutWidget)

self.forecast_4_temp.setMinimumSize(QtCore.QSize(75, 20))

self.forecast_4_temp.setMaximumSize(QtCore.QSize(200, 40))

Font = QtGui.QFont()

font.setFamily("Microsoft Yahei")

font.setPointSize(8)

self.forecast_4_temp.setFont(font)

self.forecast_4_temp.setText("")

self.forecast_4_temp.setAlignment(QtCore.Qt.AlignCenter)

self.forecast_4_temp.setObjectName("forecast_4_temp")

self.gridLayout_5.addWidget(self.forecast_4_temp, 2, 0, 1, 1)

Self.forecast_4_type = QtWidgets.QLabel(self.layoutWidget)

self.forecast_4_type.setMinimumSize(QtCore.QSize(78, 75))

self.forecast_4_type.setText("")

self.forecast_4_type.setScaledContents(True)

self.forecast_4_type.setObjectName("forecast_4_type")

self.gridLayout_5.addWidget(self.forecast_4_type, 1, 0, 1, 1)

self.horizontalLayout.addLayout(self.gridLayout_5)

self.layoutWidget1 = QtWidgets.QWidget(self.centralWidget)

self.layoutWidget1.setGeometry(QtCore.QRect(10, 200, 120, 55))

self.layoutWidget1.setObjectName("layoutWidget1")

self.gridLayout_7 = QtWidgets.QGridLayout(self.layoutWidget1)

self.gridLayout_7.setContentsMargins(11, 11, 11, 11)

self.gridLayout_7.setSpacing(6)

self.gridLayout_7.setObjectName("gridLayout_7")

Self.label_3 = QtWidgets.QLabel(self.layoutWidget1)

self.label_3.setMinimumSize(QtCore.QSize(30, 30))

self.label_3.setMaximumSize(QtCore.QSize(60, 30))

Font = QtGui.QFont()

font.setPointSize(9)

font.setBold(True)

font.setWeight(75)

self.label_3.setFont(font)

self.label_3.setText("")

self.label_3.setScaledContents(True)

self.label_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)

self.label_3.setObjectName("label_3")

self.gridLayout_7.addWidget(self.label_3, 0, 0, 1, 1)

Self.shidu = QtWidgets.QLabel(self.layoutWidget1)

#self.shidu.setFont(font)

self.shidu.setMinimumSize(QtCore.QSize(30, 30))

self.shidu.setMaximumSize(QtCore.QSize(60, 30))

Font = QtGui.QFont()

font.setPointSize(9)

font.setBold(False)

font.setWeight(50)

self.shidu.setFont(font)

self.shidu.setText("")

self.shidu.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)

self.shidu.setObjectName("shidu")

self.gridLayout_7.addWidget(self.shidu, 0, 1, 1, 1)

self.layoutWidget2 = QtWidgets.QWidget(self.centralWidget)

self.layoutWidget2.setGeometry(QtCore.QRect(110, 200, 200, 55))

self.layoutWidget2.setObjectName("layoutWidget2")

self.gridLayout_8 = QtWidgets.QGridLayout(self.layoutWidget2)

self.gridLayout_8.setContentsMargins(11, 11, 11, 11)

self.gridLayout_8.setSpacing(6)

self.gridLayout_8.setObjectName("gridLayout_8")

Self.fengxiang = QtWidgets.QLabel(self.layoutWidget2)

self.fengxiang.setMinimumSize(QtCore.QSize(70, 30))

self.fengxiang.setMaximumSize(QtCore.QSize(70, 30))

Font = QtGui.QFont()

font.setPointSize(9)

font.setBold(True)

font.setWeight(75)

self.fengxiang.setFont(font)

self.fengxiang.setText("")

self.fengxiang.setScaledContents(True)

self.fengxiang.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)

self.fengxiang.setObjectName("fengxiang")

self.gridLayout_8.addWidget(self.fengxiang, 0, 0, 1, 1)

Self.fengli = QtWidgets.QLabel(self.layoutWidget2)

self.fengli.setMinimumSize(QtCore.QSize(80, 30))

self.fengli.setMaximumSize(QtCore.QSize(80, 30))

Font = QtGui.QFont()

font.setPointSize(9)

font.setBold(False)

font.setWeight(50)

self.fengli.setFont(font)

self.fengli.setText("")

self.fengli.setObjectName("fengli")

self.gridLayout_8.addWidget(self.fengli, 0, 1, 1, 1)

self.webMessageText = QtWebKitWidgets.QWebView(self.centralWidget)

self.webMessageText.setGeometry(QtCore.QRect(10, 460, 331, 241))

self.webMessageText.setUrl(QtCore.QUrl("about:blank"))

self.webMessageText.setObjectName("webMessageText")

self.webMemorandum = QtWebKitWidgets.QWebView(MainWindow)

self.webMemorandum.setGeometry(QtCore.QRect(10, 30, 331, 180))

self.webMemorandum.setUrl(QtCore.QUrl("about:blank"))

self.webMemorandum.setObjectName("webMemorandum")

Font = QtGui.QFont()

font.setPointSize(8)

font.setBold(False)

font.setWeight(50)

self.helloWelcome = QtWidgets.QLabel(self.centralWidget)

self.helloWelcome.setGeometry(QtCore.QRect(20, 10, 251, 31))

self.helloWelcome.setFont(font)

self.helloWelcome.setText("")

self.helloWelcome.setObjectName("helloWelcome")

self.webZhishu = QtWebKitWidgets.QWebView(self.centralWidget)

self.webZhishu.setGeometry(QtCore.QRect(10, 290, 301, 150))

self.webZhishu.setUrl(QtCore.QUrl("about:blank"))

self.webZhishu.setObjectName("webZhishu")

#MainWindow.setCentralWidget(self.centralWidget)

self.retranslateUi(MainWindow)

self.closeButton.clicked.connect(MainWindow.close)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

Def retranslateUi(self, MainWindow):

_translate = QtCore.QCoreApplicaTIon.translate

MainWindow.setWindowTItle(_translate("MainWindow", "Weather"))

self.closeButton.setToolTIp(_translate("MainWindow", "closed"))

From PyQt5 import QtWebKitWidgets

#import res_rc

The main changes made here involve two aspects, one is the adjustment of the font, and the other is the adaptive adjustment, because the design process is designed according to the horizontal screen mode, and in the process of running, it will pass The command adjusts the system to the portrait mode, so it needs to be adjusted accordingly, and finally avoids the font change in the process of horizontal and vertical screen switching, which affects the interface.

The above is the UI design of the entire smart mirror. With this UI file, we can easily generate the UI by importing this class in the smart mirror system, and realize the UI interaction function of the smart mirror.

P4 Rental Indoor

Indoor Full Color LED Display P4 Rental, which made from die cast cabinet, it is easy maintenance. Indoor Rental LED Display using the distribution and modular design to improve the stability of the LED Screen control system. P4 LED Display widely used in Indoor Rental Projects, like Party, Conference, Concert, Stage Play etc. Looking forward your long term cooperation!

P4 Rental Indoor,Led Display Screen P4,Indoor Rental Led Display Board,Indoor Rental Led Display Screen

Shenzhen Jongsun Electronic Technology Co., Ltd. , https://www.jongsunled.com