#include "ctaiHistoryTools.h" ctaiHistoryTools::ctaiHistoryTools() { initLayout(); initConnect(); } ctaiHistoryTools::~ctaiHistoryTools() { } void ctaiHistoryTools::initLayout() { // 消息功能区 header_opts_Layout = new QHBoxLayout(); m_msg_copy = new QPushButton(); m_msg_save = new QPushButton(); m_msg_menu = new QPushButton(); m_msg_fold = new QPushButton(); m_msg_display_combobox = new QComboBox(); m_msg_display_font_size_combobox = new QComboBox(); m_msg_display_font_combobox = new QComboBox(); m_msg_display_font_label = new QLabel("字体:"); m_msg_display_font_size_label = new QLabel("大小:"); m_msg_display_label = new QLabel("模式:"); m_msg_display_label->setObjectName("m_msg_menu_label"); m_msg_display_combobox->setObjectName("m_msg_display_combobox"); m_msg_display_font_size_label->setObjectName("m_msg_font_size_label"); m_msg_display_font_size_combobox->setObjectName("m_msg_font_size_combobox"); m_msg_display_font_label->setObjectName("m_msg_font_label"); m_msg_display_font_combobox->setObjectName("m_msg_font_combobox"); m_msg_copy->setObjectName("m_msg_copy"); m_msg_save->setObjectName("m_msg_save"); m_msg_menu->setObjectName("m_msg_menu"); m_msg_fold->setObjectName("m_msg_fold"); m_msg_fold->setIcon(QIcon(":res/img/btn/btn_info_up.png")); m_msg_fold->setIconSize(QSize(25, 25)); initDisplayMode(); header_opts_Layout->addItem(sparcer_item); header_opts_Layout->addWidget(m_msg_display_font_label); header_opts_Layout->addWidget(m_msg_display_font_combobox); header_opts_Layout->addWidget(m_msg_display_font_size_label); header_opts_Layout->addWidget(m_msg_display_font_size_combobox); header_opts_Layout->addWidget(m_msg_display_label); header_opts_Layout->addWidget(m_msg_display_combobox); header_opts_Layout->addWidget(m_msg_copy); header_opts_Layout->addWidget(m_msg_save); header_opts_Layout->addWidget(m_msg_menu); header_opts_Layout->addWidget(m_msg_fold); header_opts_Layout->addItem(sparcer_item); header_opts_Layout->setContentsMargins(0, 0, 0, 0); setLayout(header_opts_Layout); } void ctaiHistoryTools::initDisplayMode() { for(auto str:ds_mode_str) { m_msg_display_combobox->addItem(str); } for(auto str:ds_font_size_str) { m_msg_display_font_size_combobox->addItem(str); } for(auto str:sui_font_table){ m_msg_display_font_combobox->addItem(str); } m_msg_display_font_size_combobox->setCurrentIndex(5); m_msg_display_font_combobox->setCurrentIndex(sui_config.font); } void ctaiHistoryTools::initConnect() { connect(m_msg_copy, SIGNAL(clicked()), this, SIGNAL(on_signals_copy())); connect(m_msg_save, SIGNAL(clicked()), this, SLOT(on_save_menu_slots())); connect(m_msg_menu, SIGNAL(clicked()), this, SLOT(on_opts_menu_slots())); connect(m_msg_fold, SIGNAL(clicked()), this, SIGNAL(on_signals_fold())); connect(m_msg_display_combobox, SIGNAL(currentTextChanged(QString)), this, SIGNAL(on_signals_display_mode(QString))); connect(m_msg_display_font_size_combobox, SIGNAL(currentTextChanged(QString)), this, SIGNAL(on_signals_display_font_size(QString))); connect(m_msg_display_font_combobox, SIGNAL(currentTextChanged(QString)), this, SIGNAL(on_signals_display_font(QString))); } void ctaiHistoryTools::setFoldIco(QIcon ico) { m_msg_fold->setIcon(ico); } // save按钮实现功能的槽函数 void ctaiHistoryTools::on_save_menu_slots() { if (!m_msg_save_menu) { m_msg_save_menu = new QMenu(); } if (!m_msg_save_text) { m_msg_save_text = new QAction(tr("另存为文本")); connect(m_msg_save_text, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_text())); } if (!m_msg_save_html) { m_msg_save_html = new QAction(tr("另存为HTML")); connect(m_msg_save_html, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_html())); } if (!m_msg_save_markdown) { m_msg_save_markdown = new QAction(tr("另存为Markdown")); connect(m_msg_save_markdown, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_markdown())); } if (!m_msg_save_pdf) { m_msg_save_pdf = new QAction(tr("另存为PDF")); connect(m_msg_save_pdf, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_pdf())); } m_msg_save_menu->addAction(m_msg_save_text); m_msg_save_menu->addAction(m_msg_save_html); m_msg_save_menu->addAction(m_msg_save_markdown); m_msg_save_menu->addAction(m_msg_save_pdf); m_msg_save_menu->exec(QCursor::pos()); } void ctaiHistoryTools::on_opts_menu_slots() { QMenu menu(this); // 添加菜单项 QAction *actCopy = menu.addAction(tr("复制")); QAction *actSave = menu.addAction(tr("保存")); menu.addSeparator(); QAction *actDelete = menu.addAction(tr("删除")); // 显示菜单 QPoint pos = m_msg_menu->mapToGlobal(m_msg_menu->rect().bottomRight()); QAction *act = menu.exec(pos); }