Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как сохранить результаты нажатых чекбоксов и записать их в docx? [RSS Feed]

#1 Фев. 25, 2018 21:26:16

nikt19
Зарегистрирован: 2018-02-25
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сохранить результаты нажатых чекбоксов и записать их в docx?

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

[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]

Офлайн

#2 Фев. 25, 2018 23:47:12

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Как сохранить результаты нажатых чекбоксов и записать их в docx?

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

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

Отчеты такого рода принято делать в pdf формате который легко решает перечисленные проблемы.



Офлайн

#3 Фев. 26, 2018 14:39:44

nikt19
Зарегистрирован: 2018-02-25
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сохранить результаты нажатых чекбоксов и записать их в docx?

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

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

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

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

Офлайн

  • Начало
  • » GUI
  • » Как сохранить результаты нажатых чекбоксов и записать их в docx?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version