RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1429928
Accepted
almaz
almaz
Asked:2022-08-15 16:11:50 +0000 UTC2022-08-15 16:11:50 +0000 UTC 2022-08-15 16:11:50 +0000 UTC

如何从子窗口获取小部件值到另一个窗口

  • 772

类似的东西

主文件

import sys
import platform
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtCore import (QCoreApplication, QPropertyAnimation, QDate, QDateTime, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt, QEvent)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QIcon, QKeySequence, QLinearGradient, QPalette, QPainter, QPixmap, QRadialGradient)
from PySide2.QtWidgets import *

# ||| my imports
import asyncio
# from asyncqt import QEventLoop, asyncSlot  # для асинхронности pyqt5
from loguru import logger    # библиотека для вывода сообщений/логов

# GUI FILE
from ui_main import Ui_MainWindow      # мой дизайн GUI


# IMPORT FUNCTIONS
from ui_functions import *          # функции (ко-я получает значение из соседнего окна)


class MainWindow(QMainWindow):
    """
    Главное окно программы
    работа с таблицами из БД по "Шасси"
    """
    def __init__(self, parent=None):
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        ## TOGGLE/BURGUER MENU
        ########################################################################
        self.ui.Btn_Toggle.clicked.connect(lambda: UIFunctions.toggleMenu(self, 250, True))

        ## PAGES
        ########################################################################

        # PAGE 1
        self.ui.btn_page_1.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_1))
        self.ui.show_content.clicked.connect(lambda: UIFunctions.sql_content(self))  # вывод данных из БД в таблицу

        # PAGE 2
        self.ui.btn_page_2.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_2))

        # PAGE 3
        self.ui.btn_page_3.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_3))

        self.ui.pushButton.clicked.connect(lambda: self.show_logon_window())    # показать окно авторизации

        ## SHOW ==> MAIN WINDOW
        ########################################################################
        self.show()
        ## ==> END ##


    def show_logon_window(self):
        self.w = Logon()
        self.w.show()
        self.hide()  #


class Logon(QWidget):
    """
    Класс окно - авторизации
    """
    def __init__(self, parent=None):
        # super().__init__()        # было ранее
        super(Logon, self).__init__(parent)
        self.parent = parent        # поставил для реализации дочернего окна
        # QWidget.__init__(self)
        self.resize(200, 150)
        layout = QVBoxLayout()
        self.button = QPushButton("Войти")
        self.label = QLabel("Введите логин и пароль для входа")
        self.button.clicked.connect(self.show_main_window)
        self.login_edit = QLineEdit('логин')          # вот значение ко-е надо получить в основном окне
        self.password_edit = QLineEdit('пароль')
        self.password_edit.setEchoMode(QLineEdit.Password)    

        layout.addWidget(self.label)
        layout.addWidget(self.login_edit)
        layout.addWidget(self.password_edit)
        layout.addWidget(self.button)

        self.setLayout(layout)


    def show_main_window(self):
        """
        при входе в систему откроется главное окно программмы для работы с БД и тд , и скрывая само окно авторизации
        :return:
        """
        # x = self.login_edit.text()
        # logger.info(f"your login is: {x}")

        w = MainWindow()
        w.show()                # show window main
        # self.hide()   #       # hide window of authorization


if __name__ == "__main__":
    app = QApplication(sys.argv)

    app.setStyle("Fusion")
    palette = QPalette()
    palette.setColor(QPalette.Window, QColor(53, 53, 53))
    palette.setColor(QPalette.WindowText, Qt.white)
    palette.setColor(QPalette.Base, QColor(25, 25, 25))
    palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
    palette.setColor(QPalette.ToolTipBase, Qt.white)
    palette.setColor(QPalette.ToolTipText, Qt.white)
    palette.setColor(QPalette.Text, Qt.white)
    palette.setColor(QPalette.Button, QColor(45, 53, 53))
    palette.setColor(QPalette.ButtonText, Qt.white)
    palette.setColor(QPalette.BrightText, Qt.red)
    palette.setColor(QPalette.Link, QColor(12, 100, 238))
    palette.setColor(QPalette.Highlight, QColor(182, 115, 228))
    palette.setColor(QPalette.HighlightedText, Qt.black)
    app.setPalette(palette)
    app.setStyleSheet(
        "QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }"
    )

    
    ex = Logon()
    ex.show()     # выводим окно авторизации
    sys.exit(app.exec_())

ui_main.py


from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
    QRect, QSize, QUrl, Qt)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
    QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
    QRadialGradient)
from PySide2.QtWidgets import *


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(1000, 500)
        MainWindow.setMinimumSize(QSize(1000, 500))
        MainWindow.setStyleSheet(u"background-color: rgb(45, 45, 45);")
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.Top_Bar = QFrame(self.centralwidget)
        self.Top_Bar.setObjectName(u"Top_Bar")
        self.Top_Bar.setMaximumSize(QSize(16777215, 40))
        self.Top_Bar.setStyleSheet(u"background-color: rgb(35, 35, 35);")
        self.Top_Bar.setFrameShape(QFrame.NoFrame)
        self.Top_Bar.setFrameShadow(QFrame.Raised)
        self.horizontalLayout = QHBoxLayout(self.Top_Bar)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame_toggle = QFrame(self.Top_Bar)
        self.frame_toggle.setObjectName(u"frame_toggle")
        self.frame_toggle.setMaximumSize(QSize(70, 40))
        self.frame_toggle.setStyleSheet(u"background-color: rgb(85, 170, 255);")
        self.frame_toggle.setFrameShape(QFrame.StyledPanel)
        self.frame_toggle.setFrameShadow(QFrame.Raised)
        self.verticalLayout_2 = QVBoxLayout(self.frame_toggle)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.Btn_Toggle = QPushButton(self.frame_toggle)
        self.Btn_Toggle.setObjectName(u"Btn_Toggle")
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Btn_Toggle.sizePolicy().hasHeightForWidth())
        self.Btn_Toggle.setSizePolicy(sizePolicy)
        self.Btn_Toggle.setStyleSheet(u"color: rgb(255, 255, 255);\n"
"border: 0px solid;")

        self.verticalLayout_2.addWidget(self.Btn_Toggle)


        self.horizontalLayout.addWidget(self.frame_toggle)

        self.frame_top = QFrame(self.Top_Bar)
        self.frame_top.setObjectName(u"frame_top")
        self.frame_top.setFrameShape(QFrame.StyledPanel)
        self.frame_top.setFrameShadow(QFrame.Raised)
        self.pushButton = QPushButton(self.frame_top)
        self.pushButton.setObjectName(u"pushButton")
        self.pushButton.setGeometry(QRect(700, 2, 231, 31))
        self.pushButton.setStyleSheet(u"color: rgb(255, 246, 248);\n"
"font: 12pt \"MS Shell Dlg 2\";")

        # Welcome label
        self.welcome_label = QLabel(self.frame_top)
        self.welcome_label.setGeometry(QRect(65, 2, 170, 31))
        self.welcome_label.setText('welcome user:')

        self.horizontalLayout.addWidget(self.frame_top)


        self.verticalLayout.addWidget(self.Top_Bar)

        self.Content = QFrame(self.centralwidget)
        self.Content.setObjectName(u"Content")
        self.Content.setFrameShape(QFrame.NoFrame)
        self.Content.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_2 = QHBoxLayout(self.Content)
        self.horizontalLayout_2.setSpacing(0)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.frame_left_menu = QFrame(self.Content)
        self.frame_left_menu.setObjectName(u"frame_left_menu")
        self.frame_left_menu.setMinimumSize(QSize(120, 0))      # установка ширины левого frame
        self.frame_left_menu.setMaximumSize(QSize(70, 16777215))
        self.frame_left_menu.setStyleSheet(u"background-color: rgb(35, 35, 35);")
        self.frame_left_menu.setFrameShape(QFrame.StyledPanel)
        self.frame_left_menu.setFrameShadow(QFrame.Raised)
        self.verticalLayout_3 = QVBoxLayout(self.frame_left_menu)
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.frame_top_menus = QFrame(self.frame_left_menu)
        self.frame_top_menus.setObjectName(u"frame_top_menus")
        self.frame_top_menus.setFrameShape(QFrame.NoFrame)
        self.frame_top_menus.setFrameShadow(QFrame.Raised)
        self.verticalLayout_4 = QVBoxLayout(self.frame_top_menus)
        self.verticalLayout_4.setSpacing(0)
        self.verticalLayout_4.setObjectName(u"verticalLayout_4")
        self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.btn_page_1 = QPushButton(self.frame_top_menus)
        self.btn_page_1.setObjectName(u"btn_page_1")
        self.btn_page_1.setMinimumSize(QSize(0, 40))
        self.btn_page_1.setStyleSheet(u"QPushButton {\n"
"   color: rgb(255, 255, 255);\n"
"   background-color: rgb(35, 35, 35);\n"
"   border: 0px solid;\n"
"}\n"
"QPushButton:hover {\n"
"   background-color: rgb(85, 170, 255);\n"
"}")

        self.verticalLayout_4.addWidget(self.btn_page_1)

        self.btn_page_2 = QPushButton(self.frame_top_menus)
        self.btn_page_2.setObjectName(u"btn_page_2")
        self.btn_page_2.setMinimumSize(QSize(0, 40))
        self.btn_page_2.setStyleSheet(u"QPushButton {\n"
"   color: rgb(255, 255, 255);\n"
"   background-color: rgb(35, 35, 35);\n"
"   border: 0px solid;\n"
"}\n"
"QPushButton:hover {\n"
"   background-color: rgb(85, 170, 255);\n"
"}")

        self.verticalLayout_4.addWidget(self.btn_page_2)

        self.btn_page_3 = QPushButton(self.frame_top_menus)
        self.btn_page_3.setObjectName(u"btn_page_3")
        self.btn_page_3.setMinimumSize(QSize(0, 40))
        self.btn_page_3.setStyleSheet(u"QPushButton {\n"
"   color: rgb(255, 255, 255);\n"
"   background-color: rgb(35, 35, 35);\n"
"   border: 0px solid;\n"
"}\n"
"QPushButton:hover {\n"
"   background-color: rgb(85, 170, 255);\n"
"}")

        self.verticalLayout_4.addWidget(self.btn_page_3)

        # ||| Tree ||| ---------------------------------------------------- >
        self.tree = QTreeWidget(self.frame_top_menus)
        # Установить количество столбцов
        self.tree.setColumnCount(1)
        self.tree.setMinimumSize(QSize(0, 80))
        # self.tree.setColumnWidth(0, 100)

        root = QTreeWidgetItem(self.tree)
        root.setText(0, 'Отчеты')

        root_2 = QTreeWidgetItem(self.tree)
        root_2.setText(0, 'Справочники \nи опции')

        # Установить дочерний узел 1
        child1 = QTreeWidgetItem()
        child1.setText(0, 'Отчет за месяц')
        root.addChild(child1)

        # Установить дочерний узел 2
        child2 = QTreeWidgetItem()
        child2.setText(0, 'Отчет за сутки')
        root.addChild(child2)

        # Установить дочерний узел 3
        child3 = QTreeWidgetItem()
        child3.setText(0, 'Сводка по дням')
        root.addChild(child3)

        # Установить дочерний узел 4
        child4 = QTreeWidgetItem()
        child4.setText(0, 'Сводка по шасси')
        root.addChild(child4)

        # Установить дочерний узел 5
        child5 = QTreeWidgetItem()
        child5.setText(0, 'Сводка по сдаче АВЗ')
        root.addChild(child5)

        ## -- Второй подраздел ------------------------
        # Установить дочерний узел 1
        child2_1 = QTreeWidgetItem()
        child2_1.setText(0, 'Справочник цветов')
        root_2.addChild(child2_1)

        # Установить дочерний узел 2
        child2_2 = QTreeWidgetItem()
        child2_2.setText(0, 'Справочник обьемов')
        root_2.addChild(child2_2)

        # Установить дочерний узел 3
        child3_3 = QTreeWidgetItem()
        child3_3.setText(0, 'Справочник спецтехники')
        root_2.addChild(child3_3)

        # Установить дочерний узел 4
        child4_4 = QTreeWidgetItem()
        child4_4.setText(0, 'Справочник сидений')
        root_2.addChild(child4_4)

        # Установить дочерний узел 5
        child5_5 = QTreeWidgetItem()
        child5_5.setText(0, 'Справочник мест')
        root_2.addChild(child5_5)

        # Установить дочерний узел 6
        child6_6 = QTreeWidgetItem()
        child6_6.setText(0, 'Справочник модификаций')
        root_2.addChild(child6_6)

        self.verticalLayout_4.addWidget(self.tree)    # add  tree to Layout


        self.verticalLayout_3.addWidget(self.frame_top_menus, 0, Qt.AlignTop)


        self.horizontalLayout_2.addWidget(self.frame_left_menu)

        self.frame_pages = QFrame(self.Content)
        self.frame_pages.setObjectName(u"frame_pages")
        self.frame_pages.setFrameShape(QFrame.StyledPanel)
        self.frame_pages.setFrameShadow(QFrame.Raised)
        self.verticalLayout_5 = QVBoxLayout(self.frame_pages)
        self.verticalLayout_5.setObjectName(u"verticalLayout_5")
        self.stackedWidget = QStackedWidget(self.frame_pages)
        self.stackedWidget.setObjectName(u"stackedWidget")
        self.page_1 = QWidget()
        self.page_1.setObjectName(u"page_1")
        self.verticalLayout_7 = QVBoxLayout(self.page_1)
        self.verticalLayout_7.setObjectName(u"verticalLayout_7")
        # self.test = Qta
        self.label_1 = QLabel(self.page_1)
        self.label_1.setObjectName(u"label_1")
        font = QFont()
        font.setPointSize(40)
        self.label_1.setFont(font)
        self.label_1.setStyleSheet(u"color: #FFF;")
        self.label_1.setAlignment(Qt.AlignRight)

        self.verticalLayout_7.addWidget(self.label_1)

        # Table widget --------------------------------------------------------------------------------------- >
        self.table = QTableWidget(self.page_1)  # Create a table
        # self.table.setColumnCount(3)            # кол-во столбцов

        self.show_content = QPushButton(self.page_1)  # button press show content in table

        # self.label_2 = QLabel(self.page_1)
        # self.label_2.setObjectName(u"label_2")
        # self.label_2.setGeometry(QRect(1, 5, 121, 61))
        # self.label_2.setStyleSheet(u"font: 20pt \"MS Shell Dlg 2\";\n"
        #                            "font: 12pt \"MS Shell Dlg 2\";")
        # self.label_2.setText(u"Введите год: \nВведите месяц:")
        # self.label_2.setText(u"введите месяц !!!")
        self.comboBox = QComboBox(self.page_1)
        self.comboBox.setObjectName(u"comboBox")
        self.comboBox.setGeometry(QRect(350, 2, 69, 22))
        self.comboBox.setMaximumWidth(100)
        year_list = ['Выберите год', 2020, 2021, 2022]
        month_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        new_list = list(map(lambda x: self.comboBox.addItem(str(x)), year_list))

        self.comboBox_2 = QComboBox(self.page_1)
        self.comboBox_2.setObjectName(u"comboBox_2")
        self.comboBox_2.setGeometry(QRect(350, 6, 69, 22))
        self.comboBox_2.setMaximumWidth(100)
        new_list_2 = list(map(lambda y: self.comboBox_2.addItem(str(y)), month_list))

        self.show_content.setMinimumSize(150, 40)
        self.show_content.setMaximumSize(150, 40)


        self.table.resizeColumnsToContents()
        self.verticalLayout_7.addWidget(self.comboBox)  # change year of Combobox
        self.verticalLayout_7.addWidget(self.comboBox_2)  # change year of Combobox

        self.verticalLayout_7.addWidget(self.show_content)  # add press button widget to page_1
        self.verticalLayout_7.addWidget(self.table)   # add table widget to page_1

        # -----------------------------------------------

        self.stackedWidget.addWidget(self.page_1)
        self.page_2 = QWidget()
        self.page_2.setObjectName(u"page_2")
        self.verticalLayout_6 = QVBoxLayout(self.page_2)
        self.verticalLayout_6.setObjectName(u"verticalLayout_6")
        self.label_2 = QLabel(self.page_2)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setFont(font)
        self.label_2.setStyleSheet(u"color: #FFF;")
        self.label_2.setAlignment(Qt.AlignCenter)

        self.verticalLayout_6.addWidget(self.label_2)

        self.stackedWidget.addWidget(self.page_2)
        self.page_3 = QWidget()
        self.page_3.setObjectName(u"page_3")
        self.verticalLayout_8 = QVBoxLayout(self.page_3)
        self.verticalLayout_8.setObjectName(u"verticalLayout_8")
        self.label = QLabel(self.page_3)
        self.label.setObjectName(u"label")
        self.label.setFont(font)
        self.label.setStyleSheet(u"color: #FFF;")
        self.label.setAlignment(Qt.AlignCenter)

        self.verticalLayout_8.addWidget(self.label)

        self.stackedWidget.addWidget(self.page_3)

        self.verticalLayout_5.addWidget(self.stackedWidget)


        self.horizontalLayout_2.addWidget(self.frame_pages)


        self.verticalLayout.addWidget(self.Content)

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        self.stackedWidget.setCurrentIndex(0)


        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.Btn_Toggle.setText(QCoreApplication.translate("MainWindow", u"Развернуть", None))
        self.pushButton.setText(QCoreApplication.translate("MainWindow", u"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043e\u043a\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438", None))
        self.btn_page_1.setText(QCoreApplication.translate("MainWindow", u"Журнал\n изменений", None))
        self.btn_page_2.setText(QCoreApplication.translate("MainWindow", u"Page 2", None))
        self.btn_page_3.setText(QCoreApplication.translate("MainWindow", u"Page 3", None))
        self.label_1.setText(QCoreApplication.translate("MainWindow", u"PAGE 1", None))
        self.label_2.setText(QCoreApplication.translate("MainWindow", u"PAGE 2", None))
        self.label.setText(QCoreApplication.translate("MainWindow", u"PAGE 3", None))
        self.show_content.setText(QCoreApplication.translate("MainWindow", u"Показать данные", None))
    # retranslateUi

ui_functions.py

import os
from loguru import logger     # библиотека для вывода в консоли и записей логов


## ==> GUI FILE
from main import MainWindow, QPropertyAnimation, QtCore, QTableWidgetItem
from main import Logon  # класс реализации окна авторизации !!!


os.system('cls')


class UIFunctions(MainWindow):

    def toggleMenu(self, maxWidth, enable):
        if enable:

            # GET WIDTH
            width = self.ui.frame_left_menu.width()
            maxExtend = maxWidth
            standard = 70

            # SET MAX WIDTH
            if width == 70:
                # self.ui.Btn_Toggle.setText('Развернуть')
                widthExtended = maxExtend
            else:
                # print("test")
                # self.ui.Btn_Toggle.setText('Свернуть')
                widthExtended = standard

            # ANIMATION
            self.animation = QPropertyAnimation(self.ui.frame_left_menu, b"minimumWidth")
            self.animation.setDuration(400)
            self.animation.setStartValue(width)
            self.animation.setEndValue(widthExtended)
            self.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuart)
            self.animation.start()


    def sql_content(self):
        """
        вывод данных и попытка получить значение из другого окна (авторизация)
        """
        
        # test check value from child window
        test_a = self.login_edit.text()          # пробую получить значения из окна авторизации ???
        # test_b = self.Logon.login_edit()    # другая попытка


我收到这样的错误:

“MainWindow”对象没有属性“login_edit”

python
  • 1 1 个回答
  • 37 Views

1 个回答

  • Voted
  1. Best Answer
    S. Nick
    2022-08-15T18:55:26Z2022-08-15T18:55:26Z

    试试这样:

    主文件

    import sys
    import platform
    '''
    from PySide2 import QtCore, QtGui, QtWidgets
    from PySide2.QtCore import (QCoreApplication, QPropertyAnimation, QDate, QDateTime, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt, QEvent)
    from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QIcon, QKeySequence, QLinearGradient, QPalette, QPainter, QPixmap, QRadialGradient)
    from PySide2.QtWidgets import *
    '''
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.Qt import *
    
    # ||| my imports
    import asyncio
    # from asyncqt import QEventLoop, asyncSlot  # для асинхронности pyqt5
    # ? from loguru import logger                # библиотека для вывода сообщений/логов
    
    # GUI FILE
    from q1429928_ui_main import Ui_MainWindow
    
    # IMPORT FUNCTIONS
    from q1429928_ui_functions import UiFunctions                      # !!! 
    
    
    class MainWindow(QMainWindow):
        """ Главное окно программы
        работа с таблицами из БД по "Шасси" """
        
        def __init__(self, parent=None):
    #        QMainWindow.__init__(self)
            super(MainWindow, self).__init__(parent)                   # !!!
    
            self.ui = Ui_MainWindow()
            self.ui.setupUi(self)
    
    # !!! +++
            self.windowLogon = parent                                  # !!! +++
            self.uiFunctions = UiFunctions(self.windowLogon, self)     # !!! +++
    
            ## TOGGLE/BURGUER MENU
            self.ui.Btn_Toggle.clicked.connect(
    #            lambda: UIFunctions.toggleMenu(self, 250, True))
                lambda: self.uiFunctions.toggleMenu(250, True))        # !!! +++
                
            # PAGE 1
            self.ui.btn_page_1.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_1))
            self.ui.show_content.clicked.connect(
    #            lambda: UIFunctions.sql_content(self))  
                self.uiFunctions.sql_content)                          # !!! +++
                
            # PAGE 2
            self.ui.btn_page_2.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_2))
    
            # PAGE 3
            self.ui.btn_page_3.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_3))
    
    #        self.ui.pushButton.clicked.connect(lambda: self.show_logon_window())
            self.ui.pushButton.clicked.connect(self.show_logon_window)            # !!!
            
    #        ## SHOW ==> MAIN WINDOW
    #        self.show()
    #        ## ==> END ##
    
        def show_logon_window(self):
    #        self.w = Logon()
    #        self.w.show()
    # !!! +++
            self.windowLogon.setGeometry(600, 300, 200, 150)              # !!! +++        
            self.windowLogon.show()                                       # !!! +++
            self.hide()                                                   #
    
    
    class Logon(QWidget):
        """ Класс окно - авторизации
        """
        def __init__(self, parent=None):
            super(Logon, self).__init__(parent)
            self.parent = parent        # поставил для реализации дочернего окна
            self.resize(200, 150)
            
            self.button = QPushButton("Войти")
            self.button.clicked.connect(self.show_main_window)
            self.label = QLabel("Введите логин и пароль для входа")
            self.login_edit = QLineEdit('логин')          # вот значение ко-е надо получить в основном окне
            self.password_edit = QLineEdit('пароль')
            self.password_edit.setEchoMode(QLineEdit.Password)    
    
            layout = QVBoxLayout()
            layout.addWidget(self.label)
            layout.addWidget(self.login_edit)
            layout.addWidget(self.password_edit)
            layout.addWidget(self.button)
            self.setLayout(layout)
    
        def show_main_window(self):
            """ при входе в систему откроется главное окно программмы 
            для работы с БД и тд , и скрывая само окно авторизации
            :return:
            """
            # x = self.login_edit.text()
            # logger.info(f"your login is: {x}")
    
    # ----> vvvv   !!! +++  --> vvvv
            self.w = MainWindow(self)                                # !!! +++ self
            self.w.setGeometry(200, 150, 1000, 500)                  # !!! +++
            self.w.show()                          # show window main
            self.hide()                            # hide window of authorization
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
    
        app.setStyle("Fusion")
        palette = QPalette()
        palette.setColor(QPalette.Window, QColor(53, 53, 53))
        palette.setColor(QPalette.WindowText, Qt.white)
        palette.setColor(QPalette.Base, QColor(25, 25, 25))
        palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
        palette.setColor(QPalette.ToolTipBase, Qt.white)
        palette.setColor(QPalette.ToolTipText, Qt.white)
        palette.setColor(QPalette.Text, Qt.white)
        palette.setColor(QPalette.Button, QColor(45, 53, 53))
        palette.setColor(QPalette.ButtonText, Qt.white)
        palette.setColor(QPalette.BrightText, Qt.red)
        palette.setColor(QPalette.Link, QColor(12, 100, 238))
        palette.setColor(QPalette.Highlight, QColor(182, 115, 228))
        palette.setColor(QPalette.HighlightedText, Qt.black)
        app.setPalette(palette)
        app.setStyleSheet(
            "QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }"
        )
    
        ex = Logon()
        ex.show()    
        sys.exit(app.exec_())
    

    q1429928_ui_main.py

    '''
    from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
        QRect, QSize, QUrl, Qt)
    from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
        QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
        QRadialGradient)
    from PySide2.QtWidgets import *
    '''
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.Qt import *
    
    
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            if MainWindow.objectName():
                MainWindow.setObjectName(u"MainWindow")
            MainWindow.resize(1000, 500)
            MainWindow.setMinimumSize(QSize(1000, 500))
            MainWindow.setStyleSheet(u"background-color: rgb(45, 45, 45);")
            self.centralwidget = QWidget(MainWindow)
            self.centralwidget.setObjectName(u"centralwidget")
            self.verticalLayout = QVBoxLayout(self.centralwidget)
            self.verticalLayout.setSpacing(0)
            self.verticalLayout.setObjectName(u"verticalLayout")
            self.verticalLayout.setContentsMargins(0, 0, 0, 0)
            self.Top_Bar = QFrame(self.centralwidget)
            self.Top_Bar.setObjectName(u"Top_Bar")
            self.Top_Bar.setMaximumSize(QSize(16777215, 40))
            self.Top_Bar.setStyleSheet(u"background-color: rgb(35, 35, 35);")
            self.Top_Bar.setFrameShape(QFrame.NoFrame)
            self.Top_Bar.setFrameShadow(QFrame.Raised)
            self.horizontalLayout = QHBoxLayout(self.Top_Bar)
            self.horizontalLayout.setSpacing(0)
            self.horizontalLayout.setObjectName(u"horizontalLayout")
            self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
            self.frame_toggle = QFrame(self.Top_Bar)
            self.frame_toggle.setObjectName(u"frame_toggle")
            self.frame_toggle.setMaximumSize(QSize(70, 40))
            self.frame_toggle.setStyleSheet(u"background-color: rgb(85, 170, 255);")
            self.frame_toggle.setFrameShape(QFrame.StyledPanel)
            self.frame_toggle.setFrameShadow(QFrame.Raised)
            self.verticalLayout_2 = QVBoxLayout(self.frame_toggle)
            self.verticalLayout_2.setSpacing(0)
            self.verticalLayout_2.setObjectName(u"verticalLayout_2")
            self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
            self.Btn_Toggle = QPushButton(self.frame_toggle)
            self.Btn_Toggle.setObjectName(u"Btn_Toggle")
            sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
            sizePolicy.setHorizontalStretch(0)
            sizePolicy.setVerticalStretch(0)
            sizePolicy.setHeightForWidth(self.Btn_Toggle.sizePolicy().hasHeightForWidth())
            self.Btn_Toggle.setSizePolicy(sizePolicy)
            self.Btn_Toggle.setStyleSheet(u"color: rgb(255, 255, 255);\n"
    "border: 0px solid;")
    
            self.verticalLayout_2.addWidget(self.Btn_Toggle)
    
            self.horizontalLayout.addWidget(self.frame_toggle)
    
            self.frame_top = QFrame(self.Top_Bar)
            self.frame_top.setObjectName(u"frame_top")
            self.frame_top.setFrameShape(QFrame.StyledPanel)
            self.frame_top.setFrameShadow(QFrame.Raised)
            self.pushButton = QPushButton(self.frame_top)
            self.pushButton.setObjectName(u"pushButton")
            self.pushButton.setGeometry(QRect(700, 2, 231, 31))
            self.pushButton.setStyleSheet(u"color: rgb(255, 246, 248);\n"
    "font: 12pt \"MS Shell Dlg 2\";")
    
            # Welcome label
            self.welcome_label = QLabel(self.frame_top)
            self.welcome_label.setGeometry(QRect(65, 2, 170, 31))
            self.welcome_label.setText('welcome user:')
    
            self.horizontalLayout.addWidget(self.frame_top)
    
    
            self.verticalLayout.addWidget(self.Top_Bar)
    
            self.Content = QFrame(self.centralwidget)
            self.Content.setObjectName(u"Content")
            self.Content.setFrameShape(QFrame.NoFrame)
            self.Content.setFrameShadow(QFrame.Raised)
            self.horizontalLayout_2 = QHBoxLayout(self.Content)
            self.horizontalLayout_2.setSpacing(0)
            self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
            self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
            self.frame_left_menu = QFrame(self.Content)
            self.frame_left_menu.setObjectName(u"frame_left_menu")
            self.frame_left_menu.setMinimumSize(QSize(120, 0))      # установка ширины левого frame
            self.frame_left_menu.setMaximumSize(QSize(70, 16777215))
            self.frame_left_menu.setStyleSheet(u"background-color: rgb(35, 35, 35);")
            self.frame_left_menu.setFrameShape(QFrame.StyledPanel)
            self.frame_left_menu.setFrameShadow(QFrame.Raised)
            self.verticalLayout_3 = QVBoxLayout(self.frame_left_menu)
            self.verticalLayout_3.setObjectName(u"verticalLayout_3")
            self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
            self.frame_top_menus = QFrame(self.frame_left_menu)
            self.frame_top_menus.setObjectName(u"frame_top_menus")
            self.frame_top_menus.setFrameShape(QFrame.NoFrame)
            self.frame_top_menus.setFrameShadow(QFrame.Raised)
            self.verticalLayout_4 = QVBoxLayout(self.frame_top_menus)
            self.verticalLayout_4.setSpacing(0)
            self.verticalLayout_4.setObjectName(u"verticalLayout_4")
            self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
            self.btn_page_1 = QPushButton(self.frame_top_menus)
            self.btn_page_1.setObjectName(u"btn_page_1")
            self.btn_page_1.setMinimumSize(QSize(0, 40))
            self.btn_page_1.setStyleSheet(u"QPushButton {\n"
    "   color: rgb(255, 255, 255);\n"
    "   background-color: rgb(35, 35, 35);\n"
    "   border: 0px solid;\n"
    "}\n"
    "QPushButton:hover {\n"
    "   background-color: rgb(85, 170, 255);\n"
    "}")
    
            self.verticalLayout_4.addWidget(self.btn_page_1)
    
            self.btn_page_2 = QPushButton(self.frame_top_menus)
            self.btn_page_2.setObjectName(u"btn_page_2")
            self.btn_page_2.setMinimumSize(QSize(0, 40))
            self.btn_page_2.setStyleSheet(u"QPushButton {\n"
    "   color: rgb(255, 255, 255);\n"
    "   background-color: rgb(35, 35, 35);\n"
    "   border: 0px solid;\n"
    "}\n"
    "QPushButton:hover {\n"
    "   background-color: rgb(85, 170, 255);\n"
    "}")
    
            self.verticalLayout_4.addWidget(self.btn_page_2)
    
            self.btn_page_3 = QPushButton(self.frame_top_menus)
            self.btn_page_3.setObjectName(u"btn_page_3")
            self.btn_page_3.setMinimumSize(QSize(0, 40))
            self.btn_page_3.setStyleSheet(u"QPushButton {\n"
    "   color: rgb(255, 255, 255);\n"
    "   background-color: rgb(35, 35, 35);\n"
    "   border: 0px solid;\n"
    "}\n"
    "QPushButton:hover {\n"
    "   background-color: rgb(85, 170, 255);\n"
    "}")
    
            self.verticalLayout_4.addWidget(self.btn_page_3)
    
            # ||| Tree ||| ---------------------------------------------------- >
            self.tree = QTreeWidget(self.frame_top_menus)
            # Установить количество столбцов
            self.tree.setColumnCount(1)
            self.tree.setMinimumSize(QSize(0, 80))
            # self.tree.setColumnWidth(0, 100)
    
            root = QTreeWidgetItem(self.tree)
            root.setText(0, 'Отчеты')
    
            root_2 = QTreeWidgetItem(self.tree)
            root_2.setText(0, 'Справочники \nи опции')
    
            # Установить дочерний узел 1
            child1 = QTreeWidgetItem()
            child1.setText(0, 'Отчет за месяц')
            root.addChild(child1)
    
            # Установить дочерний узел 2
            child2 = QTreeWidgetItem()
            child2.setText(0, 'Отчет за сутки')
            root.addChild(child2)
    
            # Установить дочерний узел 3
            child3 = QTreeWidgetItem()
            child3.setText(0, 'Сводка по дням')
            root.addChild(child3)
    
            # Установить дочерний узел 4
            child4 = QTreeWidgetItem()
            child4.setText(0, 'Сводка по шасси')
            root.addChild(child4)
    
            # Установить дочерний узел 5
            child5 = QTreeWidgetItem()
            child5.setText(0, 'Сводка по сдаче АВЗ')
            root.addChild(child5)
    
            ## -- Второй подраздел ------------------------
            # Установить дочерний узел 1
            child2_1 = QTreeWidgetItem()
            child2_1.setText(0, 'Справочник цветов')
            root_2.addChild(child2_1)
    
            # Установить дочерний узел 2
            child2_2 = QTreeWidgetItem()
            child2_2.setText(0, 'Справочник обьемов')
            root_2.addChild(child2_2)
    
            # Установить дочерний узел 3
            child3_3 = QTreeWidgetItem()
            child3_3.setText(0, 'Справочник спецтехники')
            root_2.addChild(child3_3)
    
            # Установить дочерний узел 4
            child4_4 = QTreeWidgetItem()
            child4_4.setText(0, 'Справочник сидений')
            root_2.addChild(child4_4)
    
            # Установить дочерний узел 5
            child5_5 = QTreeWidgetItem()
            child5_5.setText(0, 'Справочник мест')
            root_2.addChild(child5_5)
    
            # Установить дочерний узел 6
            child6_6 = QTreeWidgetItem()
            child6_6.setText(0, 'Справочник модификаций')
            root_2.addChild(child6_6)
    
            self.verticalLayout_4.addWidget(self.tree)    # add  tree to Layout
            self.verticalLayout_3.addWidget(self.frame_top_menus, 0, Qt.AlignTop)
            self.horizontalLayout_2.addWidget(self.frame_left_menu)
    
            self.frame_pages = QFrame(self.Content)
            self.frame_pages.setObjectName(u"frame_pages")
            self.frame_pages.setFrameShape(QFrame.StyledPanel)
            self.frame_pages.setFrameShadow(QFrame.Raised)
            self.verticalLayout_5 = QVBoxLayout(self.frame_pages)
            self.verticalLayout_5.setObjectName(u"verticalLayout_5")
            self.stackedWidget = QStackedWidget(self.frame_pages)
            self.stackedWidget.setObjectName(u"stackedWidget")
            self.page_1 = QWidget()
            self.page_1.setObjectName(u"page_1")
            self.verticalLayout_7 = QVBoxLayout(self.page_1)
            self.verticalLayout_7.setObjectName(u"verticalLayout_7")
            # self.test = Qta
            self.label_1 = QLabel(self.page_1)
            self.label_1.setObjectName(u"label_1")
            font = QFont()
            font.setPointSize(40)
            self.label_1.setFont(font)
            self.label_1.setStyleSheet(u"color: #FFF;")
            self.label_1.setAlignment(Qt.AlignRight)
    
            self.verticalLayout_7.addWidget(self.label_1)
    
            # Table widget ---------------------------- >
            self.table = QTableWidget(self.page_1)    # Create a table
            # self.table.setColumnCount(3)            # кол-во столбцов
    
            self.show_content = QPushButton(self.page_1)  # button press show content in table
    
            # self.label_2 = QLabel(self.page_1)
            # self.label_2.setObjectName(u"label_2")
            # self.label_2.setGeometry(QRect(1, 5, 121, 61))
            # self.label_2.setStyleSheet(u"font: 20pt \"MS Shell Dlg 2\";\n"
            #                            "font: 12pt \"MS Shell Dlg 2\";")
            # self.label_2.setText(u"Введите год: \nВведите месяц:")
            # self.label_2.setText(u"введите месяц !!!")
            self.comboBox = QComboBox(self.page_1)
            self.comboBox.setObjectName(u"comboBox")
            self.comboBox.setGeometry(QRect(350, 2, 69, 22))
            self.comboBox.setMaximumWidth(100)
            year_list = ['Выберите год', 2020, 2021, 2022]
            month_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
            new_list = list(map(lambda x: self.comboBox.addItem(str(x)), year_list))
    
            self.comboBox_2 = QComboBox(self.page_1)
            self.comboBox_2.setObjectName(u"comboBox_2")
            self.comboBox_2.setGeometry(QRect(350, 6, 69, 22))
            self.comboBox_2.setMaximumWidth(100)
            new_list_2 = list(map(lambda y: self.comboBox_2.addItem(str(y)), month_list))
    
            self.show_content.setMinimumSize(150, 40)
            self.show_content.setMaximumSize(150, 40)
    
            self.table.resizeColumnsToContents()
            self.verticalLayout_7.addWidget(self.comboBox)  # change year of Combobox
            self.verticalLayout_7.addWidget(self.comboBox_2)  # change year of Combobox
    
            self.verticalLayout_7.addWidget(self.show_content)  # add press button widget to page_1
            self.verticalLayout_7.addWidget(self.table)   # add table widget to page_1
    
            # -------------------------------------------------------
    
            self.stackedWidget.addWidget(self.page_1)
            self.page_2 = QWidget()
            self.page_2.setObjectName(u"page_2")
            self.verticalLayout_6 = QVBoxLayout(self.page_2)
            self.verticalLayout_6.setObjectName(u"verticalLayout_6")
            self.label_2 = QLabel(self.page_2)
            self.label_2.setObjectName(u"label_2")
            self.label_2.setFont(font)
            self.label_2.setStyleSheet(u"color: #FFF;")
            self.label_2.setAlignment(Qt.AlignCenter)
    
            self.verticalLayout_6.addWidget(self.label_2)
    
            self.stackedWidget.addWidget(self.page_2)
            self.page_3 = QWidget()
            self.page_3.setObjectName(u"page_3")
            self.verticalLayout_8 = QVBoxLayout(self.page_3)
            self.verticalLayout_8.setObjectName(u"verticalLayout_8")
            self.label = QLabel(self.page_3)
            self.label.setObjectName(u"label")
            self.label.setFont(font)
            self.label.setStyleSheet(u"color: #FFF;")
            self.label.setAlignment(Qt.AlignCenter)
    
            self.verticalLayout_8.addWidget(self.label)
            self.stackedWidget.addWidget(self.page_3)
    
            self.verticalLayout_5.addWidget(self.stackedWidget)
            self.horizontalLayout_2.addWidget(self.frame_pages)
            self.verticalLayout.addWidget(self.Content)
    
            MainWindow.setCentralWidget(self.centralwidget)
            self.retranslateUi(MainWindow)
            self.stackedWidget.setCurrentIndex(0)
    
            QMetaObject.connectSlotsByName(MainWindow)
    
        def retranslateUi(self, MainWindow):
            MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
            self.Btn_Toggle.setText(QCoreApplication.translate("MainWindow", u"Развернуть", None))
            self.pushButton.setText(QCoreApplication.translate("MainWindow", u"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043e\u043a\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438", None))
            self.btn_page_1.setText(QCoreApplication.translate("MainWindow", u"Журнал\n изменений", None))
            self.btn_page_2.setText(QCoreApplication.translate("MainWindow", u"Page 2", None))
            self.btn_page_3.setText(QCoreApplication.translate("MainWindow", u"Page 3", None))
            self.label_1.setText(QCoreApplication.translate("MainWindow", u"PAGE 1", None))
            self.label_2.setText(QCoreApplication.translate("MainWindow", u"PAGE 2", None))
            self.label.setText(QCoreApplication.translate("MainWindow", u"PAGE 3", None))
            self.show_content.setText(QCoreApplication.translate("MainWindow", u"Показать данные", None))
    

    q1429928_ui_functions.py

    import os
    # ? from loguru import logger     
    
    ## ==> GUI FILE
    # ? from main import MainWindow, QPropertyAnimation, QtCore, QTableWidgetItem
    # ? from main import Logon  # класс реализации окна авторизации !!!
    
    from PyQt5 import QtCore, QtGui, QtWidgets                          # +++
    from PyQt5.Qt import *                                              # +++
    
    # ??? os.system('cls')
    
    
    #class UIFunctions(MainWindow):
    class UiFunctions(QMainWindow):                                     # +++
        def __init__(self, windowLogon, parent=None):                   # +++
            super(UiFunctions, self).__init__(parent)                   # +++
    # +++        
            self.parent = parent                                        # +++
            self.windowLogon = windowLogon                              # +++
    
        def toggleMenu(self, maxWidth, enable):
            if enable:
    
                # GET WIDTH
    #            width = self.ui.frame_left_menu.width()
                width = self.parent.ui.frame_left_menu.width()          # +++
    
                maxExtend = maxWidth
                standard = 70
    
                # SET MAX WIDTH
                if width == 70:
                    # self.ui.Btn_Toggle.setText('Развернуть')
                    widthExtended = maxExtend
                else:
                    # print("test")
                    # self.ui.Btn_Toggle.setText('Свернуть')
                    widthExtended = standard
    
                # ANIMATION
    #            self.animation = QPropertyAnimation(self.ui.frame_left_menu, b"minimumWidth")
    
                self.animation = QPropertyAnimation(
                    self.parent.ui.frame_left_menu, b"minimumWidth")             # +++
                
                self.animation.setDuration(400)
                self.animation.setStartValue(width)
                self.animation.setEndValue(widthExtended)
                self.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuart)
                self.animation.start()
    
        def sql_content(self):
            """ вывод данных 
            и попытка получить значение из другого окна (авторизация)
            """
            
            # test check value from child window
    #        test_a = self.login_edit.text()       # пробую получить значения из окна авторизации ???
            # test_b = self.Logon.login_edit()     # другая попытка
            
            
            test_a = self.windowLogon.login_edit.text()                    # +++
            print(f'def sql_content(self): test_a = {test_a}')             # +++
            
            self.parent.ui.welcome_label.setText(f'welcome user: <b>{test_a}</b>')             # +++
    

    在此处输入图像描述

    在此处输入图像描述

    • 1

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5