|
发表于 2024-3-18 17:03:24
|
显示全部楼层
好的,以下是根据您的要求进行了修改的代码:
- from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QInputDialog, QLineEdit, QFontDialog
- from PyQt5.QtGui import QColor, QFont
- class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- self.initUI()
- def initUI(self):
- self.setWindowTitle('信息录入')
- self.setGeometry(300, 300, 400, 300)
- font = QFont()
- font.setPointSize(12)
- font.setBold(True)
- self.button = QPushButton('录入信息', self)
- self.button.clicked.connect(self.showInputDialog)
- self.button.setGeometry(50, 50, 100, 30)
- self.button.setFont(font)
- def showInputDialog(self):
- while True:
- text, ok = QInputDialog.getText(self, '输入信息', '请输入您的信息:', QLineEdit.Normal, "", flags=Qt.WindowCloseButtonHint)
- if ok:
- if not text:
- QMessageBox.warning(self, '输入错误', '请输入有效的信息!')
- continue
- self.processInput(text)
- break
- else:
- confirm = QMessageBox.question(self, '确认退出', '确定要退出吗?', QMessageBox.Yes | QMessageBox.No)
- if confirm == QMessageBox.Yes:
- break
- def processInput(self, text):
- exclude_rows_input, ok = QInputDialog.getText(self, '输入框设置', '请输入要排除的行数:', QLineEdit.Normal,
- "", flags=Qt.WindowCloseButtonHint)
- if ok:
- if not exclude_rows_input or not exclude_rows_input.isdigit():
- QMessageBox.warning(self, '输入错误', '请输入有效的排除行数!')
- return
- self.exclude_rows = int(exclude_rows_input)
- print('用户录入的内容是:', text)
- print('用户要排除的行数是:', self.exclude_rows)
- # 执行后续操作
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- mainWindow = MainWindow()
-
- # 设置字体颜色
- font_color, ok = QColorDialog.getColor()
- if ok:
- mainWindow.button.setStyleSheet("color: {}".format(font_color.name()))
-
- # 设置字体大小和样式
- font_dialog = QFontDialog()
- font, ok = font_dialog.getFont()
- if ok:
- mainWindow.button.setFont(font)
-
- mainWindow.show()
- sys.exit(app.exec_())
复制代码
在这个代码中,我添加了一个循环来实现用户可以重新输入的功能。如果用户点击取消,会弹出一个确认退出的对话框,如果用户选择是则退出程序,否则继续录入信息。
另外,我还加入了设置字体大小、颜色等的功能。在主窗口初始化时,通过`QColorDialog`获取字体颜色,然后通过`setStyleSheet`方法设置按钮的颜色。同时,通过`QFontDialog`获取字体大小和样式,然后通过`setFont`方法设置按钮的字体。
希望这次的修改能满足您的需求。如果还有其他问题,请随时提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|