void MainWindow::on_insertTitle_clicked() { QTextEdit *pEdit = textEditor.editor; QTextCursor cursor = pEdit->textCursor(); //set alignment center pEdit->setAlignment(Qt::AlignHCenter); groupCheck(0); //insert title cursor.insertText("“ ”学院 2011—2012学年第一学期\n"); //insert paper info cursor.insertText("《 》期末考试试卷( 卷) 考核形式( 卷)\n"); //set alignment left pEdit->setAlignment(Qt::AlignLeft); groupCheck(2); QFont font = pEdit->font(); font.setBold(true); font.setPointSize(16); pEdit->setFont(font); pEdit->setTextCursor(cursor); pEdit->setFocus(); }
/** * Resets the font for the note text code edit */ void SettingsDialog::on_noteTextEditCodeResetButton_clicked() { QTextEdit textEdit; noteTextEditCodeFont = textEdit.font(); noteTextEditCodeFont.setFamily("Courier"); setFontLabel(ui->noteTextEditCodeFontLabel, noteTextEditCodeFont); }
void MainWindow::insertQuestionTypeTitle(const QString &title) { QTextEdit *pEdit = textEditor.editor; QTextCursor cursor = pEdit->textCursor(); cursor.insertText(tr("\n")); pEdit->setTextCursor(cursor); cursor.insertText(title+" "); pEdit->setTextCursor(cursor); //set font of title and info QFont font = pEdit->font(); QTextCharFormat fmt; font.setBold(true); font.setPointSize(13); fmt.setFont(font); cursor.select(QTextCursor::BlockUnderCursor); cursor.mergeCharFormat(fmt); cursor.select(QTextCursor::WordUnderCursor); cursor.insertText("\n"); pEdit->setTextCursor(cursor); //set font of questions cursor.insertText(" "); font.setBold(false); font.setPointSize(10); fmt.setFont(font); cursor.select(QTextCursor::BlockUnderCursor); cursor.mergeCharFormat(fmt); cursor.select(QTextCursor::WordUnderCursor); cursor.deletePreviousChar(); pEdit->setTextCursor(cursor); }
PmQuery::PmQuery(bool inputflag, bool printflag, bool noframeflag, bool nosliderflag, bool usesliderflag, bool exclusiveflag) : QDialog() { QHBoxLayout *hboxLayout; QVBoxLayout *vboxLayout; QSpacerItem *spacerItem; QSpacerItem *spacerItem1; QVBoxLayout *vboxLayout1; QHBoxLayout *hboxLayout1; QSpacerItem *spacerItem2; QString filename; if (iconic == HOST_ICON) filename = tr(":images/dialog-host.png"); else if (iconic == ERROR_ICON) filename = tr(":images/dialog-error.png"); else if (iconic == WARNING_ICON) filename = tr(":images/dialog-warning.png"); else if (iconic == ARCHIVE_ICON) filename = tr(":images/dialog-archive.png"); else if (iconic == QUESTION_ICON) filename = tr(":images/dialog-question.png"); else // (iconic == INFO_ICON) filename = tr(":images/dialog-information.png"); QIcon icon(filename); QPixmap pixmap(filename); setWindowIcon(icon); setWindowTitle(tr(title)); QGridLayout *gridLayout = new QGridLayout(this); gridLayout->setSpacing(6); gridLayout->setMargin(9); hboxLayout = new QHBoxLayout(); hboxLayout->setSpacing(6); hboxLayout->setMargin(0); vboxLayout = new QVBoxLayout(); vboxLayout->setSpacing(6); vboxLayout->setMargin(0); spacerItem = new QSpacerItem(20, 2, QSizePolicy::Minimum, QSizePolicy::Expanding); vboxLayout->addItem(spacerItem); QLabel *imageLabel = new QLabel(this); imageLabel->setPixmap(pixmap); vboxLayout->addWidget(imageLabel); spacerItem1 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); vboxLayout->addItem(spacerItem1); hboxLayout->addLayout(vboxLayout); vboxLayout1 = new QVBoxLayout(); vboxLayout1->setSpacing(6); vboxLayout1->setMargin(0); int height; int width = DEFAULT_EDIT_WIDTH; QLineEdit* lineEdit = NULL; QTextEdit* textEdit = NULL; if (inputflag && messagecount <= 1) { lineEdit = new QLineEdit(this); if (messagecount == 1) lineEdit->setText(tr(messages[0])); height = lineEdit->font().pointSize() + 4; if (height < 0) height = lineEdit->font().pixelSize() + 4; if (height < 0) height = lineEdit->heightForWidth(width) + 4; lineEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); lineEdit->setMinimumSize(QSize(width, height)); lineEdit->setGeometry(QRect(0, 0, width, height)); vboxLayout1->addWidget(lineEdit); } else { QFont fixed("monospace"); fixed.setStyleHint(QFont::TypeWriter); textEdit = new QTextEdit(this); textEdit->setFont(fixed); textEdit->setLineWrapMode(QTextEdit::FixedColumnWidth); textEdit->setLineWrapColumnOrWidth(80); textEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); if (nosliderflag) textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); else if (usesliderflag) textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); else textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); for (int m = 0; m < messagecount; m++) textEdit->append(tr(messages[m])); if (inputflag) textEdit->setReadOnly(false); else { textEdit->setLineWidth(1); textEdit->setFrameStyle(noframeflag ? QFrame::NoFrame : QFrame::Box | QFrame::Sunken); textEdit->setReadOnly(true); } if (usesliderflag) height = DEFAULT_EDIT_HEIGHT; else { height = textEdit->font().pointSize() + 4; if (height < 0) height = textEdit->font().pixelSize() + 4; if (height < 0) height = textEdit->heightForWidth(width) + 4; height *= messagecount; } textEdit->setMinimumSize(QSize(width, height)); textEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); textEdit->moveCursor(QTextCursor::Start); textEdit->ensureCursorVisible(); vboxLayout1->addWidget(textEdit); } hboxLayout1 = new QHBoxLayout(); hboxLayout1->setSpacing(6); hboxLayout1->setMargin(0); spacerItem2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); hboxLayout1->addItem(spacerItem2); for (int i = 0; i < buttoncount; i++) { QueryButton *button = new QueryButton(printflag, this); button->setMinimumSize(QSize(72, 32)); button->setDefault(buttons[i] == defaultbutton); button->setQuery(this); button->setText(tr(buttons[i])); button->setStatus(statusi[i]); if (inputflag && buttons[i] == defaultbutton) { if (textEdit) button->setEditor(textEdit); else if (lineEdit) { button->setEditor(lineEdit); if (buttons[i] == defaultbutton) connect(lineEdit, SIGNAL(returnPressed()), button, SLOT(click())); } } connect(button, SIGNAL(clicked()), this, SLOT(buttonClicked())); hboxLayout1->addWidget(button); } vboxLayout1->addLayout(hboxLayout1); hboxLayout->addLayout(vboxLayout1); gridLayout->addLayout(hboxLayout, 0, 0, 1, 1); gridLayout->setSizeConstraint(QLayout::SetFixedSize); if (inputflag && messagecount <= 1) resize(QSize(320, 83)); else resize(QSize(320, 132)); if (timeout) startTimer(timeout * 1000); if (exclusiveflag) setWindowModality(Qt::WindowModal); }
void MainWindow::formatQuestions(const PACKEDQUESTIONS &qset) { TestAssistance *pt = TestAssistance::get(); QTextEdit *pEdit = textEditor.editor; QTextCursor cursor = pEdit->textCursor(); //set alignment center pEdit->setAlignment(Qt::AlignHCenter); groupCheck(0); //set font of title and info QFont font = pEdit->font(); QTextCharFormat fmt; font.setBold(true); font.setPointSize(14); fmt.setFont(font); cursor.select(QTextCursor::BlockUnderCursor); cursor.mergeCharFormat(fmt); //insert school name cursor.insertText(tr("%1\n").arg(pt->getPaperInfo().strSchool)); //insert title cursor.insertText(tr("“%1”专业(学院) 2011—2012学年第一学期\n").arg(pt->getPaperInfo().major)); //insert paper info cursor.insertText(tr("《%1》期末考试试卷(%2卷) 考核形式(%3卷)\n").arg(pt->getPaperInfo().strCourse) .arg(pt->getPaperInfo().strPaperType).arg(((pt->getPaperInfo().bOpenOrClose)?"开":"闭"))); //insert author cursor.insertText(tr("作者:%1\n").arg(pt->getPaperInfo().strAuthor)); pEdit->setTextCursor(cursor); //set alignment left pEdit->setAlignment(Qt::AlignLeft); groupCheck(2); //get judge QString text; int type = 0; const std::vector<QUESTION> &j = qset.judge; if(!j.empty()){ insertQuestionTypeTitle(tr("%1.判断题").arg(digitToChinese(type+1))); type++; for(size_t i = 0; i != j.size(); ++i){ cursor.insertText(tr("%1.").arg(i+1) + j[i].txt + "\n"); if(!j[i].imgBytes.isEmpty()){ QImage img; img.loadFromData(j[i].imgBytes, "PNG"); cursor.insertImage(img); cursor.insertText("\n\n"); } pEdit->setTextCursor(cursor); } } //get choice text.clear(); const std::vector<QUESTION> &c = qset.choice; if(!c.empty()){ insertQuestionTypeTitle(tr("%1.选择题").arg(digitToChinese(type+1))); type++; for(size_t i = 0; i != c.size(); ++i){ cursor.insertText(tr("%1.").arg(i+1) + c[i].txt + "\n"); if(!c[i].imgBytes.isEmpty()){ QImage img; img.loadFromData(c[i].imgBytes, "PNG"); cursor.insertImage(img); cursor.insertText("\n\n"); } else cursor.insertText("\n"); pEdit->setTextCursor(cursor); } } //get fill text.clear(); const std::vector<QUESTION> &f = qset.fill; if(!f.empty()){ insertQuestionTypeTitle(tr("%1.填空题").arg(digitToChinese(type+1))); type++; for(size_t i = 0; i != f.size(); ++i){ cursor.insertText(tr("%1.").arg(i+1) + f[i].txt + "\n"); if(!f[i].imgBytes.isEmpty()){ QImage img; img.loadFromData(f[i].imgBytes, "PNG"); cursor.insertImage(img); cursor.insertText("\n\n"); } pEdit->setTextCursor(cursor); } } //get calc text.clear(); const std::vector<QUESTION> &l = qset.calc; if(!l.empty()){ insertQuestionTypeTitle(tr("%1.计算题").arg(digitToChinese(type+1))); type++; for(size_t i = 0; i != l.size(); ++i){ cursor.insertText(tr("%1.").arg(i+1) + l[i].txt + "\n"); if(!l[i].imgBytes.isEmpty()){ QImage img; img.loadFromData(l[i].imgBytes, "PNG"); cursor.insertImage(img); cursor.insertText("\n\n"); } pEdit->setTextCursor(cursor); } } //get ans text.clear(); const std::vector<QUESTION> &a = qset.ans; if(!a.empty()){ insertQuestionTypeTitle(tr("%1.问答题").arg(digitToChinese(type+1))); type++; for(size_t i = 0; i != a.size(); ++i){ cursor.insertText(tr("%1.").arg(i+1) + a[i].txt + "\n"); if(!a[i].imgBytes.isEmpty()){ QImage img; img.loadFromData(a[i].imgBytes, "PNG"); cursor.insertImage(img); cursor.insertText("\n\n"); } else cursor.insertText("\n"); pEdit->setTextCursor(cursor); } } }
/** * Resets the font for the note text edit */ void SettingsDialog::on_noteTextEditResetButton_clicked() { QTextEdit textEdit; noteTextEditFont = textEdit.font(); setFontLabel(ui->noteTextEditFontLabel, noteTextEditFont); }