fix bug45
This commit is contained in:
28
dialogs.py
28
dialogs.py
@@ -388,36 +388,46 @@ class CreateLvDialog(QDialog):
|
||||
max_size_gb = self.vg_sizes.get(selected_vg, 0.0)
|
||||
|
||||
# 确保 max_size_gb 至少是 spinbox 的最小值,以防卷组可用空间过小导致 UI 问题
|
||||
if max_size_gb < self.lv_size_spinbox.minimum():
|
||||
# 如果实际最大可用空间小于最小允许值,则将最小值临时调整为实际最大值
|
||||
current_min_limit = self.lv_size_spinbox.minimum() # 获取当前的最小值限制
|
||||
if max_size_gb < current_min_limit:
|
||||
# 如果实际最大可用空间小于当前最小值限制,则将最小值临时调整为实际最大值
|
||||
self.lv_size_spinbox.setMinimum(max_size_gb if max_size_gb > 0 else 0.01) # 至少0.01GB
|
||||
else:
|
||||
self.lv_size_spinbox.setMinimum(0.1) # 恢复正常最小值
|
||||
|
||||
self.lv_size_spinbox.setMaximum(max(self.lv_size_spinbox.minimum(), max_size_gb)) # 设置最大值,确保不小于最小值
|
||||
# 计算并设置 spinbox 的最大值
|
||||
clamped_max_gb = max(self.lv_size_spinbox.minimum(), max_size_gb)
|
||||
self.lv_size_spinbox.setMaximum(clamped_max_gb)
|
||||
|
||||
# 如果选中了“使用最大可用空间”,则将 spinbox 值设置为最大值
|
||||
if self.use_max_space_checkbox.isChecked():
|
||||
self.lv_size_spinbox.setValue(self.lv_size_spinbox.maximum())
|
||||
self.lv_size_spinbox.setValue(clamped_max_gb) # 使用计算出的最大值
|
||||
else:
|
||||
# 如果当前值超过了新的最大值,则调整为新的最大值
|
||||
if self.lv_size_spinbox.value() > self.lv_size_spinbox.maximum():
|
||||
self.lv_size_spinbox.setValue(self.lv_size_spinbox.maximum())
|
||||
if self.lv_size_spinbox.value() > clamped_max_gb:
|
||||
self.lv_size_spinbox.setValue(clamped_max_gb)
|
||||
# 如果当前值小于新的最小值,则调整
|
||||
elif self.lv_size_spinbox.value() < self.lv_size_spinbox.minimum():
|
||||
self.lv_size_spinbox.setValue(self.lv_size_spinbox.minimum())
|
||||
|
||||
|
||||
def _toggle_size_input(self, state):
|
||||
"""根据“使用最大可用空间”复选框的状态切换大小输入框的启用/禁用状态。"""
|
||||
# 获取当前选中的卷组的实际最大可用空间(GB)
|
||||
selected_vg = self.vg_combo_box.currentText()
|
||||
actual_max_gb = self.vg_sizes.get(selected_vg, 0.0)
|
||||
|
||||
# 确保计算出的最大值不小于spinbox的最小值
|
||||
clamped_max_gb = max(self.lv_size_spinbox.minimum(), actual_max_gb)
|
||||
|
||||
if state == Qt.Checked:
|
||||
self.lv_size_spinbox.setDisabled(True)
|
||||
self.lv_size_spinbox.setValue(self.lv_size_spinbox.maximum()) # 设置为最大值
|
||||
self.lv_size_spinbox.setValue(clamped_max_gb) # 使用计算出的最大值
|
||||
else:
|
||||
self.lv_size_spinbox.setDisabled(False)
|
||||
# 如果之前是最大值,取消勾选后,恢复到最小值或一个合理值
|
||||
if self.lv_size_spinbox.value() == self.lv_size_spinbox.maximum():
|
||||
if self.lv_size_spinbox.value() == clamped_max_gb: # 比较时也使用计算出的最大值
|
||||
self.lv_size_spinbox.setValue(self.lv_size_spinbox.minimum())
|
||||
# 否则,保持当前值(用户手动输入的值)
|
||||
|
||||
|
||||
def get_lv_info(self):
|
||||
|
||||
Reference in New Issue
Block a user