0

Here is my py file generated by pyside6-uic

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

################################################################################
## Form generated from reading UI file 'untitled.ui'
##
## Created by: Qt User Interface Compiler version 6.4.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################

from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QPushButton,
    QSizePolicy, QStatusBar, QWidget)

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(1024, 740)
        sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.pushButton = QPushButton(self.centralwidget)
        self.pushButton.setObjectName(u"pushButton")
        self.pushButton.setGeometry(QRect(720, 30, 113, 32))
        self.label_up = QLabel(self.centralwidget)
        self.label_up.setObjectName(u"label_up")
        self.label_up.setGeometry(QRect(280, 130, 171, 81))
        font = QFont()
        font.setPointSize(40)
        self.label_up.setFont(font)
        self.label_up.setLocale(QLocale(QLocale.Chinese, QLocale.China))
        self.label_up.setAlignment(Qt.AlignCenter)
        self.label_down = QLabel(self.centralwidget)
        self.label_down.setObjectName(u"label_down")
        self.label_down.setGeometry(QRect(280, 210, 171, 81))
        self.label_down.setFont(font)
        self.label_down.setLocale(QLocale(QLocale.Chinese, QLocale.China))
        self.label_down.setAlignment(Qt.AlignCenter)
        self.label_attention = QLabel(self.centralwidget)
        self.label_attention.setObjectName(u"label_attention")
        self.label_attention.setGeometry(QRect(430, 150, 421, 111))
        font1 = QFont()
        font1.setPointSize(40)
        font1.setBold(False)
        self.label_attention.setFont(font1)
        self.label_attention.setLocale(QLocale(QLocale.Chinese, QLocale.China))
        MainWindow.setCentralWidget(self.centralwidget)
        self.label_up.raise_()
        self.label_down.raise_()
        self.label_attention.raise_()
        self.pushButton.raise_()
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName(u"statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.pushButton.clicked.connect(MainWindow.test_slot)

        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.pushButton.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
        self.label_up.setText(QCoreApplication.translate("MainWindow", u"<font color='Grey'>\u4e0a\u884c</font>", None))
        self.label_down.setText(QCoreApplication.translate("MainWindow", u"<font color='Grey'>\u4e0b\u884c</font>", None))
        self.label_attention.setText(QCoreApplication.translate("MainWindow", u"<font color='Grey'>\u6709\u706b\u8f66\u5230\u6765\uff0c\u8bf7\u6ce8\u610f\uff01</font>", None))
    # retranslateUi


and here is main.py file:

from PySide6 import QtWidgets, QtCore
import sys
import gui_main


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent=parent)
        ui = gui_main.Ui_MainWindow()
        ui.setupUi(self)

    @QtCore.Slot()
    def test_slot(self):
        print('test')





if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

I tried to access attribute label_up which created in Qt designer using class MainWindow. Like this:

def test_slot(self): print('test') MainWindow.label_up.setText('aaa')

It not work. How to access attribute like text value of label_up?

  • Either change to `self.ui` instead of `ui` and use `self.ui.label_up`, or use multiple inheritance: `class MainWindow(QtWidgets.QMainWindow, gui_main.Ui_MainWindow):`, then `self.setupUi(self)` and finally access with `self.label_up`. – musicamante Nov 26 '22 at 02:36
  • @musicamante You are my life saver... Can't thank you enough.. – MingXi Han Nov 26 '22 at 02:52

0 Answers0