簡體   English   中英

PyQt5:如果 QLineEdit 為空,如何輸入默認值?

[英]PyQt5: How to input default value if QLineEdit is empty?

我已經將我的 PyQt5 Gui 與 Excel 相關聯。

我想通過 PyQt5 Gui 程序在 Excel 中輸入“2000”,即使我沒有輸入任何內容。

解說圖如下:

在此處輸入圖像描述

即使我沒有在 PyQt5 Gui 中輸入任何內容,

在此處輸入圖像描述

'2000' 應輸入 Excel。

但是,關鍵是如果在 PyQt5 Gui 中輸入任何內容,則應將其寫入 Excel 中,因為它已寫入 PyQt5 中。

我制作的代碼如下:

class Ship_Use_Tug_Input_Program(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        visbl = QLabel('Visibility(m)', self)
        visbl.move(60, 450)
        vis_ent = QLineEdit(self)
        vis_ent.move(180, 445)

        file = pathlib.Path('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')
        if file.exists():
            pass
        else:
            file=Workbook()
            sheet = file.active

        file.save('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')

    def save_to_excel(self):
        file = openpyxl.load_workbook('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')

        sheet = file.active
        sheet.cell(column=10, row=sheet.max_row, value=vis_ent.text())

        file.save('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')

    btn_save = QPushButton('S a v e', self)
    btn_save.clicked.connect(save_to_excel)
    btn_save.move(400,510)

    self.setWindowTitle('Ship use tug input program')
    self.setFixedSize(945, 570)
    self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Ship_Use_Tug_Input_Program()
    sys.exit(app.exec_())

您應該始終將小部件添加為屬性,以便您可以通過其他方法訪問它們:

class Ship_Use_Tug_Input_Program(QWidget):
    ...    
    def initUI(self):
        self.visbl = QLabel('Visibility(m)', self)
        self.visbl.move(60, 450)
        self.vis_ent = QLineEdit(self)
        self.vis_ent.move(180, 445)

現在您可以獲取輸入文本:

    def save_to_excel(self):
        ...    
        sheet = file.active
        value = self.vis_ent.text().strip() or '2000'
        sheet.cell(column=10, row=sheet.max_row, value=value)
        ...

如果vis_ent為空或只有空格,則將使用默認值。


更新

這是您的整個 class 的樣子:

class Ship_Use_Tug_Input_Program(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.visbl = QLabel('Visibility(m)', self)
        self.visbl.move(60, 450)
        self.vis_ent = QLineEdit(self)
        self.vis_ent.move(180, 445)

        self.btn_save = QPushButton('S a v e', self)
        self.btn_save.clicked.connect(self.save_to_excel)
        self.btn_save.move(400, 510)

        self.setWindowTitle('Ship use tug input program')
        self.setFixedSize(945, 570)
        self.show()

        file = pathlib.Path('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')
        if file.exists():
            pass
        else:
            file=Workbook()
            sheet = file.active

        file.save('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')

    def save_to_excel(self):
        file = openpyxl.load_workbook('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')
        sheet = file.active
        value = self.vis_ent.text().strip() or '2000'
        sheet.cell(column=10, row=sheet.max_row, value=value)

        file.save('C:/Users/woody/OneDrive/Desktop/Python Workspace/Ship_Use_Tug_Input_Program.xlsx')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM