[英]Python PyQt5: How to change the color of QLabel if QLineEdit is empty?
[英]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.