Найти - Пользователи
Полная версия: Как сохранить результаты нажатых чекбоксов и записать их в docx?
Начало » GUI » Как сохранить результаты нажатых чекбоксов и записать их в docx?
1
nikt19
Здравствуйте! Нужно было сохранить результаты выбранных чекбоксов (или радио баттонс) и записать их в ворде. В приложенном коде просто сохраняется файл с захардкоженными значениями. А как сделать так, чтобы запомнил нажатые чекбоксы и добавить их в вордовский файл? Пробовал разные способы, но почему то крэшится.

[code python]# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'pdd3.ui'
#
# Created by: PyQt5 UI code generator 5.10
#
# WARNING! All changes made in this file will be lost!

import sys
import uuid
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QPushButton

from docx import Document
from docx.shared import Inches



class Ui_Form(object):

def printer(self):
filename = str(uuid.uuid4())
answers = ['1', '2', '3', '4','5','6']
document = Document()
for x in answers:
document.add_heading("Проверка на ПДД")
document.add_paragraph ('ваш ответ '+ x)
document.add_paragraph ('правильный ответ '+ x)
document.save(filename + '.docx')

def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(597, 370)
self.checkBox = QtWidgets.QCheckBox(Form)
self.checkBox.setGeometry(QtCore.QRect(30, 60, 70, 17))
self.checkBox.setObjectName("checkBox")
self.checkBox_2 = QtWidgets.QCheckBox(Form)
self.checkBox_2.setGeometry(QtCore.QRect(30, 100, 70, 17))
self.checkBox_2.setObjectName("checkBox_2")
self.checkBox_3 = QtWidgets.QCheckBox(Form)
self.checkBox_3.setGeometry(QtCore.QRect(30, 140, 70, 17))
self.checkBox_3.setObjectName("checkBox_3")
self.checkBox_4 = QtWidgets.QCheckBox(Form)
self.checkBox_4.setGeometry(QtCore.QRect(30, 210, 70, 17))
self.checkBox_4.setObjectName("checkBox_4")
self.checkBox_5 = QtWidgets.QCheckBox(Form)
self.checkBox_5.setGeometry(QtCore.QRect(30, 250, 70, 17))
self.checkBox_5.setObjectName("checkBox_5")
self.checkBox_6 = QtWidgets.QCheckBox(Form)
self.checkBox_6.setGeometry(QtCore.QRect(30, 280, 70, 17))
self.checkBox_6.setObjectName("checkBox_6")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(30, 322, 131, 41))
self.pushButton.setObjectName(("pushButton"))
self.pushButton.clicked.connect(self.printer)










def retranslateUi(self, Form):

_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.checkBox.setText(_translate("Form", "CheckBox"))
self.checkBox_2.setText(_translate("Form", "C12312"))
self.checkBox_3.setText(_translate("Form", "CheckBox"))
self.checkBox_4.setText(_translate("Form", "CheckBox"))
self.checkBox_5.setText(_translate("Form", "CheckBox"))
self.checkBox_6.setText(_translate("Form", "CheckBox"))
self.pushButton.setText(_translate("Form", "PushButton"))





if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()

ui.setupUi(Form)
Form.show()


sys.exit(app.exec_())

[/code]
doza_and
nikt19
Нужно было сохранить результаты выбранных чекбоксов (или радио баттонс) и записать их в ворде.
Судя по смыслу приведенного кода вам не нужно сохранять их в ворде.

1. Для результатов проверки после проведения теста недопустимо редактирование, Просмотрщик docx обладает лишними возможностями по редактированию и не обеспечивает никакой защиты контента от изменения.
2. То что вы используете это не чекбокс а буква x, что не соответствует интуитивным представлениям пользователя.

Отчеты такого рода принято делать в pdf формате который легко решает перечисленные проблемы.
nikt19
Нет, там такая логика - открывается что-то вроде теста, после прохождения которого нужно нажать кнопку, после чего результаты выбранных чекбоксов сохранятся в вордовском файле. Например, “был выбран первый чекбокс”, на следующей строчке “был выбран третий чекбокс” и.т.д.

С этого форума пробовал добавить Your text to link here…

text = ''
if self.checkbox_one.isChecked():
text += self.list_check[0]

но почему то крэшится

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB