PyQt5:如果QLineEdit为空,如何输入默认值?
PyQt5: How to input default value if QLineEdit is empty?
我已经将我的 PyQt5 Gui 与 Excel 相关联。
我想通过 PyQt5 Gui 程序将“2000”输入 Excel,即使我没有输入任何内容。
说明图如下:
即使我没有在 PyQt5 Gui 中输入任何内容,
'2000' 应输入 Excel。
但是,关键是如果在 PyQt5 Gui 中输入任何内容,它应该像在 PyQt5 上写的那样写在 Excel 中。
我做的代码如下:
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')
我已经将我的 PyQt5 Gui 与 Excel 相关联。
我想通过 PyQt5 Gui 程序将“2000”输入 Excel,即使我没有输入任何内容。
说明图如下:
即使我没有在 PyQt5 Gui 中输入任何内容,
'2000' 应输入 Excel。
但是,关键是如果在 PyQt5 Gui 中输入任何内容,它应该像在 PyQt5 上写的那样写在 Excel 中。
我做的代码如下:
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')