RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-492645

Masik's questions

Martin Hope
Masik
Asked: 2024-07-31 14:19:10 +0000 UTC

Pandas 迭代 2 个 DataFrame 中的行并更改 2 列

  • 5

我有 2 个数据框:1. 产品,2. 我正在尝试的每日余额:

  1. 按“Artical”列对产品进行排序,从“prod_df”到“sales_df”
  2. 对于找到的每个产品,更改数量“Start_of_Day”和“End_of_Day”
  • 如果日期小于“report_start”减 1 天,则“Start_of_Day”和“End_of_Day”等于“Qty”
  • 如果不是,则“Start_of_Day”等于前一天的“End_of_Day”,并且“End_of_Day”等于“Qty”

结果,我想要得到如图所示的 DataFrame。但我得到一个 DataFrame,其中“Start_of_Day”和“End_of_Day”等于 0

如何替换值?

期望的结果

这是我尝试过的:

mport pandas as pd
from datetime import timedelta

report_start = '01.06.2024'
report_start = pd.to_datetime(report_start, format='%d.%m.%Y',errors='coerce')
report_end = '04.06.2024'
report_end = pd.to_datetime(report_end, format='%d.%m.%Y',errors='coerce')

prod_df = pd.DataFrame({
    'Artical': ['111', '222', '333', '444'],
    'Name': ['name1', 'name2', 'name3', 'name4'],
})

sales_df = pd.DataFrame({
    'Artical': ['111', '111', '111', '111', '111', '222', '222', '222', '222', '222'],
    'Date': ['31.05.2024', '01.06.2024', '02.06.2024', '03.06.2024', '04.06.2024', '31.05.2024', '01.06.2024', '02.06.2024', '03.06.2024', '04.06.2024'],
    'Qty': ['2172', '2172', '2172', '2128', '2128', '0', '2068', '2068', '2056', '2056']    
})
frames = []
for i in prod_df['Artical']:
    data = sales_df[(sales_df['Artical'] == str(i))].reset_index(drop=True)
    data['Start_of_Day'] = 0
    data['End_of_Day'] = 0
    if data.empty == False:
        for index, row in data.iterrows():
            if row['Date'] == (report_start - timedelta(days=1)):
                row['Start_of_Day'] = row['Qty']
                row['End_of_Day'] = row['Qty']
                # row['qtyStart_of_Day'] = row['qtyStart_of_Day'].replace(0, row['Qty'])
                print(row)
            else:
                new_qty = data[(data['Date'] == (report_start - timedelta(days=1)))].reset_index(drop=True)
                row['Start_of_Day'] = new_qty['End_of_Day']
                row['End_of_Day'] = row['Qty']
                
            frames.append(data)
        
final_df = pd.concat(frames, axis=0, ignore_index=True)
print(final_df)
python
  • 1 个回答
  • 20 Views
Martin Hope
Masik
Asked: 2023-10-07 22:22:02 +0000 UTC

翻转表格中的 2 列

  • 6

请帮帮我。有一个表,您需要翻转 2 列并从中生成行。在这种情况下,第一列中的值的“组合”应该重复,其余的应该形成唯一的组合。Col_Name 列中是未来列的名称(有很多变体),Value 中是这些列的值

那些。从这个表:

在此输入图像描述

你需要得到这个:

在此输入图像描述

我尝试使用pandas-pivot,但聚合不起作用。我不知道还有什么办法可以把它翻过来:(

import pandas as pd

data = {'ID': ['10001017236', '10001017236', '10001017236', '10001017236', '10001017236', '10001017236', '10001017236'], 
        'ITEM_NO': ['00001', '00001', '00001', '00001', '00001', '00001', '00001'], 
        'COL_NAME': ['CODE_ETSNG', 'CODE_ETSNG', 'ROAD_FROM', 'ROAD_FROM', 'ROAD_FROM', 'ROAD_FROM', 'SUB_RPS'], 
        'VALUE': ['693227', '521*', '17', '63', '58', '24', '003']}

df = pd.DataFrame(data) 

res = (df
       .assign(idx=df.groupby(["ID", 'ITEM_NO']).cumcount())
       .pivot_table(index=["ID", 'ITEM_NO'], columns="COL_NAME", 
                    values="VALUE", aggfunc="unique"))
python
  • 1 个回答
  • 38 Views
Martin Hope
Masik
Asked: 2022-07-13 18:32:00 +0000 UTC

QStackWidget 在不同的文件中,内容不会调整大小

  • 1

使用. _ _ QStackedWidget在它的每个页面上都有许多按钮和不同的内容,因此它们被分成不同的文件。

当您尝试将程序扩展到整个屏幕窗口时,就会出现问题。内容StackWidght保持其原始大小并且不随主窗口而改变。

https://github.com/Masik84/My_prog.git

main.py文件

WINDOW_SIZE = 0


class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)

        # DROP SHADOW
        self.shadow = QGraphicsDropShadowEffect(self)
        self.shadow.setBlurRadius(17)
        self.shadow.setXOffset(0)
        self.shadow.setYOffset(0)
        self.shadow.setColor(QColor(0, 0, 0, 150))
        self.ui.bgApp.setGraphicsEffect(self.shadow)

        # MINIMIZE
        self.ui.minimizeAppBtn.clicked.connect(lambda: self.showMinimized())
        # MAXIMIZE/RESTORE
        self.ui.maximizeRestoreAppBtn.clicked.connect(lambda: self.maximize_restore())
        # CLOSE APPLICATION
        self.ui.closeAppBtn.clicked.connect(lambda: self.close())
        # SLIDE MENU
        self.ui.toggleButton.clicked.connect(lambda: self.toggleMenu())
        self.ui.contentTopBg.mouseMoveEvent = self.MoveWindow

        self.ui.stackedWidget.setCurrentWidget(self.ui.home)

        self.ui.btn_home.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.home))
        self.ui.btn_bonuses.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.bonus_data_page))
        # self.ui.btn_invoices.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.product_data_page))
        self.ui.btn_customers.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.customer_data_page))
        self.ui.btn_products.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.product_data_page))

        # RESIZE WINDOW
        self.sizegrip = QSizeGrip(self.ui.frame_size_grip)
        self.sizegrip.setStyleSheet("width: 20px; height: 20px; margin 0px; padding: 0px;")
        # APPLY DROPSHADOW TO FRAME
        self.ui.frame_size_grip.setGraphicsEffect(self.shadow)



    def maximize_restore(self):
        global WINDOW_SIZE
        status = WINDOW_SIZE
        if status == 0:
            WINDOW_SIZE = 1
            self.showMaximized()

            self.ui.appMargins.setContentsMargins(0, 0, 0, 0)
            self.ui.maximizeRestoreAppBtn.setToolTip("Restore")
            self.ui.maximizeRestoreAppBtn.setIcon(QIcon(u":/icons/images/icons/icon_restore.png"))
        else:
            WINDOW_SIZE = 0
            self.showNormal()

            self.resize(self.width() + 1, self.height() + 1)
            self.ui.appMargins.setContentsMargins(10, 10, 10, 10)
            self.ui.maximizeRestoreAppBtn.setToolTip("Maximize")
            self.ui.maximizeRestoreAppBtn.setIcon(QIcon(u":/icons/images/icons/icon_maximize.png"))

    def MoveWindow(self, event):
        if self.isMaximized() == False:
            self.move(self.pos() + event.globalPos() - self.clickPosition)
            self.clickPosition = event.globalPos()
            event.accept()

    def mousePressEvent(self, event):
        self.clickPosition = event.globalPos()

    def toggleMenu(self):
        width = self.ui.leftMenuBg.width()
        maxExtend = 150
        standard = 60

        # SET MAX WIDTH
        if width == 60:
            widthExtended = maxExtend
        else:
            widthExtended = standard

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


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

例如Product_Data_screen(尽管Customer_Data_screen故事相同)

class Products_Functions(QtWidgets.QWidget):
    def __init__(self):
        super(Products_Functions, self).__init__()

        self.product_data_page = QtWidgets.QWidget(self)
        self.product_data_page.resize(1058, 631)

        self.product_data_page.setStyleSheet("QPushButton {\n"
                                             "    border: 2px solid #6272a4;\n"
                                             "    border-radius: 5px;\n"
                                             "    background-color: #6272a4;\n"
                                             "    color: #f8f8f2;\n"
                                             "}\n"
                                             "\n"
                                             "QPushButton:hover {\n"
                                             "    background-color: #bd93f9;\n"
                                             "    border: 2px solid #7082b6;\n"
                                             "}\n"
                                             "\n"
                                             "QPushButton:pressed {\n"
                                             "    background-color: #ff79c6;\n"
                                             "    border: 2px solid #ff79c6;\n"
                                             "}\n"
                                             "\n"
                                             " QLineEdit {\n"
                                             "    background-color: #6272a4;\n"
                                             "    border-radius: 5px;\n"
                                             "    border: 2px solid #6272a4;\n"
                                             "    padding-left: 10px;\n"
                                             "    selection-color: rgb(255, 255, 255);\n"
                                             "    selection-background-color: rgb(255, 121, 198);\n"
                                             "    color: #f8f8f2;\n"
                                             "}\n"
                                             "\n"
                                             "QLineEdit:hover {\n"
                                             "    border: 2px solid #bd93f9;\n"
                                             "}\n"
                                             "\n"
                                             "QLineEdit:focus {\n"
                                             "    border: 2px solid #ff79c6;\n"
                                             "}")
        self.product_data_page.setObjectName("product_data_page")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.product_data_page)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.row_1 = QtWidgets.QFrame(self.product_data_page)
        self.row_1.setMaximumSize(QtCore.QSize(16777215, 60))
        self.row_1.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.row_1.setFrameShadow(QtWidgets.QFrame.Raised)
        self.row_1.setObjectName("row_1")
        self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.row_1)
        self.verticalLayout_11.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_11.setSpacing(0)
        self.verticalLayout_11.setObjectName("verticalLayout_11")
        self.label_5 = QtWidgets.QLabel(self.row_1)
        font = QtGui.QFont()
        font.setFamily("Segoe UI")
        font.setPointSize(26)
        font.setBold(True)
        font.setItalic(False)
        self.label_5.setFont(font)
        self.label_5.setObjectName("label_5")
        self.verticalLayout_11.addWidget(self.label_5, 0, QtCore.Qt.AlignHCenter)
        self.verticalLayout.addWidget(self.row_1)
        self.row_2 = QtWidgets.QFrame(self.product_data_page)
        self.row_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.row_2.setFrameShadow(QtWidgets.QFrame.Raised)
        self.row_2.setObjectName("row_2")
        self.horizontalLayout_12 = QtWidgets.QHBoxLayout(self.row_2)
        self.horizontalLayout_12.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_12.setSpacing(0)
        self.horizontalLayout_12.setObjectName("horizontalLayout_12")
        self.prod_frame = QtWidgets.QFrame(self.row_2)
        self.prod_frame.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.prod_frame.setStyleSheet("")
        self.prod_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.prod_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.prod_frame.setObjectName("prod_frame")
        self.verticalLayout_25 = QtWidgets.QVBoxLayout(self.prod_frame)
        self.verticalLayout_25.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_25.setSpacing(0)
        self.verticalLayout_25.setObjectName("verticalLayout_25")
        self.prod_heade_frame = QtWidgets.QFrame(self.prod_frame)
        self.prod_heade_frame.setMinimumSize(QtCore.QSize(0, 40))
        self.prod_heade_frame.setMaximumSize(QtCore.QSize(16777215, 30))
        self.prod_heade_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.prod_heade_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.prod_heade_frame.setObjectName("prod_heade_frame")
        self.verticalLayout_28 = QtWidgets.QVBoxLayout(self.prod_heade_frame)
        self.verticalLayout_28.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_28.setSpacing(0)
        self.verticalLayout_28.setObjectName("verticalLayout_28")
        self.gridLayout_8 = QtWidgets.QGridLayout()
        self.gridLayout_8.setObjectName("gridLayout_8")
        self.label_6 = QtWidgets.QLabel(self.prod_heade_frame)
        self.label_6.setMinimumSize(QtCore.QSize(0, 50))
        self.label_6.setMaximumSize(QtCore.QSize(16777215, 50))
        font = QtGui.QFont()
        font.setPointSize(18)
        font.setBold(False)
        font.setItalic(False)
        self.label_6.setFont(font)
        self.label_6.setText("")
        self.label_6.setAlignment(QtCore.Qt.AlignCenter)
        self.label_6.setObjectName("label_6")
        self.gridLayout_8.addWidget(self.label_6, 0, 0, 1, 1)
        self.verticalLayout_28.addLayout(self.gridLayout_8)
        self.verticalLayout_25.addWidget(self.prod_heade_frame)
        self.prod_body_frame = QtWidgets.QFrame(self.prod_frame)
        self.prod_body_frame.setMaximumSize(QtCore.QSize(16777215, 1054))
        self.prod_body_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.prod_body_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.prod_body_frame.setObjectName("prod_body_frame")
        self.verticalLayout_29 = QtWidgets.QVBoxLayout(self.prod_body_frame)
        self.verticalLayout_29.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_29.setSpacing(0)
        self.verticalLayout_29.setObjectName("verticalLayout_29")
        self.gridLayout_9 = QtWidgets.QGridLayout()
        self.gridLayout_9.setContentsMargins(9, 9, 9, 9)
        self.gridLayout_9.setSpacing(9)
        self.gridLayout_9.setObjectName("gridLayout_9")
        self.prod_filter_btn = QtWidgets.QPushButton(self.prod_body_frame)
        self.prod_filter_btn.setMinimumSize(QtCore.QSize(0, 30))
        self.prod_filter_btn.setMaximumSize(QtCore.QSize(120, 16777215))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.prod_filter_btn.setFont(font)
        self.prod_filter_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/icons/images/icons/filter.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.prod_filter_btn.setIcon(icon4)
        self.prod_filter_btn.setObjectName("prod_filter_btn")
        self.gridLayout_9.addWidget(self.prod_filter_btn, 0, 1, 1, 1)
        self.prod_update_btn = QtWidgets.QPushButton(self.prod_body_frame)
        self.prod_update_btn.setMinimumSize(QtCore.QSize(0, 30))
        self.prod_update_btn.setMaximumSize(QtCore.QSize(120, 16777215))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.prod_update_btn.setFont(font)
        self.prod_update_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/icons/images/icons/cil-reload.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.prod_update_btn.setIcon(icon5)
        self.prod_update_btn.setObjectName("prod_update_btn")
        self.gridLayout_9.addWidget(self.prod_update_btn, 0, 0, 1, 1)
        self.verticalLayout_29.addLayout(self.gridLayout_9)
        self.frame_10 = QtWidgets.QFrame(self.prod_body_frame)
        self.frame_10.setMinimumSize(QtCore.QSize(0, 30))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.frame_10.setFont(font)
        self.frame_10.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_10.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_10.setObjectName("frame_10")
        self.horizontalLayout_22 = QtWidgets.QHBoxLayout(self.frame_10)
        self.horizontalLayout_22.setContentsMargins(2, 2, 2, 2)
        self.horizontalLayout_22.setSpacing(2)
        self.horizontalLayout_22.setObjectName("horizontalLayout_22")
        self.prod_error_lable = QtWidgets.QLabel(self.frame_10)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.prod_error_lable.setFont(font)
        self.prod_error_lable.setText("")
        self.prod_error_lable.setAlignment(QtCore.Qt.AlignCenter)
        self.prod_error_lable.setObjectName("prod_error_lable")
        self.horizontalLayout_22.addWidget(self.prod_error_lable)
        self.verticalLayout_29.addWidget(self.frame_10)
        self.prod_table_frame = QtWidgets.QFrame(self.prod_body_frame)
        self.prod_table_frame.setMinimumSize(QtCore.QSize(1050, 398))
        self.prod_table_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.prod_table_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.prod_table_frame.setObjectName("prod_table_frame")
        self.horizontalLayout_23 = QtWidgets.QHBoxLayout(self.prod_table_frame)
        self.horizontalLayout_23.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_23.setSpacing(0)
        self.horizontalLayout_23.setObjectName("horizontalLayout_23")
        self.prod_table = QtWidgets.QTableWidget(self.prod_table_frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.prod_table.sizePolicy().hasHeightForWidth())
        self.prod_table.setSizePolicy(sizePolicy)
        self.prod_table.setMinimumSize(QtCore.QSize(510, 250))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.NoBrush)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.NoBrush)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.PlaceholderText, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.NoBrush)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(51, 51, 51))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.PlaceholderText, brush)
        self.prod_table.setPalette(palette)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.prod_table.setFont(font)
        self.prod_table.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.prod_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.prod_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.prod_table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
        self.prod_table.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
        self.prod_table.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)
        self.prod_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.prod_table.setShowGrid(True)
        self.prod_table.setGridStyle(QtCore.Qt.SolidLine)
        self.prod_table.setRowCount(0)
        self.prod_table.setColumnCount(13)
        self.prod_table.setObjectName("prod_table")
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(3, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(4, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(5, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(6, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(7, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(8, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(9, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(10, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(11, item)
        item = QtWidgets.QTableWidgetItem()
        font = QtGui.QFont()
        font.setPointSize(10)
        item.setFont(font)
        self.prod_table.setHorizontalHeaderItem(12, item)
        self.prod_table.horizontalHeader().setVisible(True)
        self.prod_table.horizontalHeader().setCascadingSectionResizes(True)
        self.prod_table.horizontalHeader().setDefaultSectionSize(110)
        self.prod_table.horizontalHeader().setStretchLastSection(True)
        self.prod_table.verticalHeader().setVisible(False)
        self.prod_table.verticalHeader().setCascadingSectionResizes(False)
        self.prod_table.verticalHeader().setDefaultSectionSize(30)
        self.prod_table.verticalHeader().setHighlightSections(False)
        self.prod_table.verticalHeader().setStretchLastSection(False)
        self.horizontalLayout_23.addWidget(self.prod_table)
        self.verticalLayout_29.addWidget(self.prod_table_frame)
        self.verticalLayout_25.addWidget(self.prod_body_frame)
        self.horizontalLayout_12.addWidget(self.prod_frame)
        self.verticalLayout.addWidget(self.row_2)
        self.row_3 = QtWidgets.QFrame(self.product_data_page)
        self.row_3.setMinimumSize(QtCore.QSize(1050, 60))
        self.row_3.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.row_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.row_3.setFrameShadow(QtWidgets.QFrame.Raised)
        self.row_3.setObjectName("row_3")
        self.horizontalLayout_11 = QtWidgets.QHBoxLayout(self.row_3)
        self.horizontalLayout_11.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_11.setSpacing(0)
        self.horizontalLayout_11.setObjectName("horizontalLayout_11")
        self.frame_8 = QtWidgets.QFrame(self.row_3)
        self.frame_8.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_8.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_8.setObjectName("frame_8")
        self.horizontalLayout_21 = QtWidgets.QHBoxLayout(self.frame_8)
        self.horizontalLayout_21.setObjectName("horizontalLayout_21")
        self.prod_file_path_lable = QtWidgets.QLabel(self.frame_8)
        self.prod_file_path_lable.setMinimumSize(QtCore.QSize(0, 30))
        self.prod_file_path_lable.setMaximumSize(QtCore.QSize(16777215, 30))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.prod_file_path_lable.setFont(font)
        self.prod_file_path_lable.setStyleSheet("background-color: #6272a4;\n"
                                                "border-radius: 5px;\n"
                                                "border: 2px solid #6272a4;\n"
                                                "padding-left: 10px;\n"
                                                "selection-color: rgb(255, 255, 255);\n"
                                                "selection-background-color: rgb(255, 121, 198);\n"
                                                "color: #f8f8f2;\n"
                                                "")
        self.prod_file_path_lable.setObjectName("prod_file_path_lable")
        self.horizontalLayout_21.addWidget(self.prod_file_path_lable)
        self.horizontalLayout_11.addWidget(self.frame_8)
        self.frame_7 = QtWidgets.QFrame(self.row_3)
        self.frame_7.setMinimumSize(QtCore.QSize(100, 0))
        self.frame_7.setMaximumSize(QtCore.QSize(120, 16777215))
        self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_7.setObjectName("frame_7")
        self.horizontalLayout_20 = QtWidgets.QHBoxLayout(self.frame_7)
        self.horizontalLayout_20.setObjectName("horizontalLayout_20")
        self.open_prod_file_btn = QtWidgets.QPushButton(self.frame_7)
        self.open_prod_file_btn.setMinimumSize(QtCore.QSize(90, 30))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.open_prod_file_btn.setFont(font)
        self.open_prod_file_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap(":/icons/images/icons/cil-folder-open.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.open_prod_file_btn.setIcon(icon6)
        self.open_prod_file_btn.setObjectName("open_prod_file_btn")
        self.horizontalLayout_20.addWidget(self.open_prod_file_btn)
        self.horizontalLayout_11.addWidget(self.frame_7)
        self.frame_9 = QtWidgets.QFrame(self.row_3)
        self.frame_9.setMinimumSize(QtCore.QSize(100, 0))
        self.frame_9.setMaximumSize(QtCore.QSize(120, 16777215))
        self.frame_9.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_9.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_9.setObjectName("frame_9")
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout(self.frame_9)
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        self.upload_prod_file_btn = QtWidgets.QPushButton(self.frame_9)
        self.upload_prod_file_btn.setMinimumSize(QtCore.QSize(90, 30))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.upload_prod_file_btn.setFont(font)
        self.upload_prod_file_btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        icon7 = QtGui.QIcon()
        icon7.addPixmap(QtGui.QPixmap(":/icons/images/icons/upload.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.upload_prod_file_btn.setIcon(icon7)
        self.upload_prod_file_btn.setObjectName("upload_prod_file_btn")
        self.horizontalLayout_9.addWidget(self.upload_prod_file_btn)
        self.horizontalLayout_11.addWidget(self.frame_9)
        self.verticalLayout.addWidget(self.row_3)
python ооп
  • 1 个回答
  • 18 Views
Martin Hope
Masik
Asked: 2022-07-03 08:04:49 +0000 UTC

QStackedWidget - 从另一个文件为每个窗口运行按钮功能

  • 1

使用. _ _ QStackedWidget在它的每个页面上都有(或将有)应该对SQLite数据库执行操作的按钮。由于有很多功能,我尝试将它们放在单独的.py文件中。但是,我不知道如何使它们工作。

如果我在main.py中添加所有功能,所有按钮都可以工作。

我尝试在单独的文件 ( customer_screen.py ) 中创建一个包含按钮单击和功能的类,但出现错误:

AttributeError:“MainWindow”对象没有属性“SoldTo_Functions”。

理想情况下,将按钮单击命令移动到customer_screen.py。

https://github.com/Masik84/My_Prog.git

主文件

from PyQt5.QtCore import QPropertyAnimation, QEasingCurve
from PyQt5.QtGui import QColor, QIcon
from PyQt5.QtWidgets import QMainWindow, QGraphicsDropShadowEffect, QSizeGrip

from ui_main import *
from customer_screen import SoldTo_Functions
import sys

class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)

        self.ui.stackedWidget.setCurrentWidget(self.ui.home)

        self.ui.btn_home.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.home))
        self.ui.btn_bonuses.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.bonus_data_page))
        self.ui.btn_invoices.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.widgets))
        self.ui.btn_customers.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.cutomer_data_page))

        # page doesn't created yet
        #self.ui.btn_products.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.product_data_page))


        # tried to import SoldTo_Functions
        # self.ui.soldto_update_btn.clicked.connect(self.SoldTo_Functions.upload_Soldto_from_DB)

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

customer_screen.py

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow

from ui_main import Ui_MainWindow
import sqlite3

db_path = 'Bonus_db.db'

class SoldTo_Functions():
    def __init__(self):
        super(SoldTo_Functions, self).__init__()

    # self.ui.soldto_update_btn.clicked.connect(self.upload_Soldto_from_DB)
    # self.ui.soldto_add_btn.clicked.connect(self.go_to_Create_Client)
    # self.ui.soldto_edit_btn.clicked.connect(self.go_to_Edit_Client)
    # self.ui.soldto_delete_btn.clicked.connect(self.go_to_Delete_Client)

    def upload_Soldto_from_DB(self):
                conn = sqlite3.Connection(db_path)
                create_customers_table = """
                                CREATE TABLE IF NOT EXISTS Customers (
                                id INTEGER PRIMARY KEY AUTOINCREMENT,
                                SoldTo INTEGER not null,
                                SoldTo_name VARCHAR (100),
                                CONSTRAINT Cust_Index UNIQUE (SoldTo, SoldTo_name) ON CONFLICT REPLACE);
                        """
                conn.execute(create_customers_table)
                conn.commit()

                show_customer_data = 'SELECT SoldTo, SoldTo_name FROM Customers'
                result = conn.execute(show_customer_data)
                self.ui.soldto_table.setRowCount(0)

                for row_number, row_data in enumerate(result):
                    self.ui.soldto_table.insertRow(row_number)
                    for column_number, data in enumerate(row_data):
                        self.ui.soldto_table.setItem(row_number, column_number, QtWidgets.QTableWidgetItem(str(data)))

                conn.close()
                self.ui.soldto_error_lable.setText('Table was updated successfully')

    def go_to_Create_Client(self):
        print('Sold-to Create Btn clicked')

    def go_to_Edit_Client(self):
        print('Sold-to Edit Btn clicked')

    def go_to_Delete_Client(self):
        print('Sold-to Delete Btn clicked')


python ооп
  • 3 个回答
  • 41 Views
Martin Hope
Masik
Asked: 2022-06-25 16:44:26 +0000 UTC

图标不会从 .qrc 导入到 .py

  • 1

我在Qt Designer中创建了一个界面,并将资源文件resource.qrc用于应用程序中的图标。将Designer中的.ui
保存为.py文件, 然后使用以下命令将resource.qrc转换为rc_resource.py:

pyside6-rcc resource.qrc -o rc_resource.py

我必须马上说PyQt5 也有同样的问题。

但是,当我尝试Main从文件运行应用程序时,出现错误:

“ModuleNotFoundError:没有名为‘rc_resource’的模块”。

文件中有一个导入ui_MainWindow,但显然出现了问题。

如果我删除导入rc_resource并直接在它们存储的文件夹中替换图标的路径,而不是在 中qrc,图标仍然不可见。
ui_MainWindow并rc_resource存储在同一个文件夹中。

帮助解决问题。 https://github.com/Masik84/my_prog

资源.qrc

<RCC>
  <qresource prefix="icons">
    <file>Icons/minus.png</file>
    <file>Icons/alignleft2.png</file>
    ...
    <file>Icons/x.png</file>
  </qresource>
</RCC>

ui_MainWindow.py

from PySide6.QtWidgets import (QApplication, QFrame, QHBoxLayout, QMainWindow,
    QPushButton, QSizePolicy, QVBoxLayout, QWidget)

import rc_resource

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
         ...

主文件

import sys

from PySide6 import QtCore, QtGui
from PySide6.QtGui import QColor
from PySide6.QtWidgets import QMainWindow, QDialog, QApplication, QGraphicsDropShadowEffect

from screens.ui_MainWindow import *

class Welcome_Screen(QMainWindow):
    def __init__(self):
        super(Welcome_Screen,self).__init__()
        self.animation = None
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Welcome_Screen()
    sys.exit(app.exec_())
python pyqt5
  • 1 个回答
  • 75 Views
Martin Hope
Masik
Asked: 2022-06-16 22:52:54 +0000 UTC

PyQt5从窗口转换到另一个窗口不起作用

  • 1

程序计划很大,所以我决定把它拆分成几个带有窗口界面的逻辑文件。
问题出现在从第二个窗口过渡到第三个窗口的阶段(他们帮助我完成了第一个过渡)。

(过程以退出代码 -1073740791 (0xC0000409) 结束)。

1 个文件Welcome_Screen.py(使用 cust_btn 按钮进行转换)

import sys
from PyQt5.uic import loadUi
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QDialog, QApplication

from Customer_screen import CustomerScreen


class WelcomeScreen(QDialog):
    def __init__(self):
        super(WelcomeScreen, self).__init__()
        loadUi('screens/welcomescreen.ui', self)

        self.cust_btn.clicked.connect(self.go_to_CustomerData)

    def go_to_CustomerData(self):
        client = CustomerScreen(widget)  # +++ (widget)
        widget.addWidget(client)
        widget.setCurrentIndex(widget.currentIndex() + 1)


# main
if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon('im.png'))
    app.setApplicationDisplayName('Bonus Program')
    welcome = WelcomeScreen()
    widget = QtWidgets.QStackedWidget()
    widget.addWidget(welcome)
    widget.setFixedWidth(600)
    widget.setFixedHeight(475)
    widget.show()

    try:
        sys.exit(app.exec_())
    except:
        print("Exiting")

2 文件Customer_Screen.py(使用 soldto_btn 按钮进行转换)

from PyQt5 import QtCore
from PyQt5.uic import loadUi
from PyQt5.Qt import *

from Soldto_screen import SoldtoScreen

class CustomerScreen(QDialog):
    def __init__(self, widget):
        super(CustomerScreen, self).__init__()
        loadUi("screens/customerscreen.ui", self)

        self.widget = widget  # +++

        self.back_btn.setIcon(QIcon('Icons/Back.png'))
        self.back_btn.setIconSize(QtCore.QSize(45, 60))
        self.back_btn.clicked.connect(self.go_Back_to_WelcomeScreen)
        self.soldto_btn.clicked.connect(self.go_to_Soldto_list)

    def go_Back_to_WelcomeScreen(self):
        self.widget.setCurrentIndex(0)


    def go_to_Soldto_list(self):
        soldto = SoldtoScreen(widget)  # +++ (widget)
        widget.addWidget(soldto)
        widget.widget.setCurrentIndex(widget.currentIndex() + 1)

3 文件Soldto_screen.py

from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel, QSqlQuery
from PyQt5.uic import loadUi
from PyQt5.Qt import *


class SoldtoScreen(QDialog):
    def __init__(self, widget):  # +++ widget
        super(SoldtoScreen, self).__init__()
        loadUi("screens/soldtoscreen.ui", self)

        self.st_widget = widget  # +++

        self.back_btn.setIcon(QIcon('Icons/Back.png'))
        self.back_btn.setIconSize(QtCore.QSize(45, 60))
        self.back_btn.clicked.connect(self.go_Back_to_Customer_Screen)

    def go_Back_to_Customer_Screen(self):
        self.st_widget.setCurrentIndex(0)  # +++
python
  • 0 个回答
  • 0 Views
Martin Hope
Masik
Asked: 2022-06-15 20:31:52 +0000 UTC

从第二个窗口返回到第一个(不同的文件)

  • 2

一个应用程序是用大量不同的窗口创建的。底线是我试图从主窗口(通过按下按钮)到客户端窗口。客户端窗口有一个按钮Back,可以将用户返回到主窗口。

两个代码都在不同的文件中。问题出现在按下按钮的阶段

#Customers#(过程以退出代码 -1073740791 (0xC0000409) 结束)。

帮助我了解什么是错的。

此外,如果一切都在一个文件中,那么一切正常。但是只是现在程序计划不小,所以我不想在一个文件中围起来巨大的代码。

Welcome_Screen.py

import sys
from PyQt5.uic import loadUi
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QDialog, QApplication
import Customers
 
 
class WelcomeScreen(QDialog):
    def __init__(self):
        super(WelcomeScreen, self).__init__()
        loadUi('screens/welcomescreen.ui', self)
        self.CustomerData.clicked.connect(self.go_to_CustomerData)
 
    def go_to_CustomerData(self):
        client = Customers.CustomerScreen()
        widget.addWidget(client)
        widget.setCurrentIndex(widget.currentIndex() + 1)
 
# main
app = QApplication(sys.argv)
app.setWindowIcon(QtGui.QIcon('Icons/MainIcon.png'))
app.setApplicationDisplayName('Bonus Program')
welcome = WelcomeScreen()
widget = QtWidgets.QStackedWidget()
widget.addWidget(welcome)
widget.setFixedWidth(600)
widget.setFixedHeight(475)
widget.show()
 
try:
    sys.exit(app.exec_())
except:
    print("Exiting")

客户.py

import sys
from PyQt5.uic import loadUi
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtWidgets import QDialog, QApplication, QWidget, QMessageBox, QTableWidget, QTableWidgetItem, QTableView
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel, QSqlQuery
from PyQt5.QtGui import QIcon
 
import Welcome_Screen as ws
 
import sqlite3
 
db_path = 'Bonus_db.sqlite'
 
class CustomerScreen(QDialog):
    def __init__(self):
        super(CustomerScreen, self).__init__()
        loadUi("screens/customerscreen.ui", self)
 
        self.back_btn.setIcon(QIcon('Icons/Back.png'))
        self.back_btn.setIconSize(QtCore.QSize(45, 60))
        self.back_btn.clicked.connect(self.go_Back_to_WelcomeScreen)
 
        # self.SoldTos.clicked.connect(self.gotoSoldTos)
 
    def go_Back_to_WelcomeScreen(self):
        welcome = ws.WelcomeScreen()
        ws.widget.addWidget(welcome)
        ws.widget.setCurrentIndex(ws.widget.currentIndex() + 1)
 
Customer_app = QApplication(sys.argv)
cust_window = CustomerScreen()
cust_window.show()
sys.exit(Customer_app.exec_())

python
  • 0 个回答
  • 0 Views

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