php网站开发优化方案,雄县做网站,网站如何做信息表,百度一下你就知道官网新闻1.相关说明 独立Widget窗口、嵌入式Widget、嵌入式MainWindow窗口、独立MainWindow窗口等弹窗的实现 相关界面包含关系 2.相关界面 3.相关代码 mainwindow.cpp #include mainwindow.h
#include ui_mainwindow.h
#include tformdoc.h
#incl…1.相关说明 独立Widget窗口、嵌入式Widget、嵌入式MainWindow窗口、独立MainWindow窗口等弹窗的实现 相关界面包含关系 2.相关界面 3.相关代码 mainwindow.cpp #include mainwindow.h
#include ui_mainwindow.h
#include tformdoc.h
#include tformtable.h#include QPainterMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui-setupUi(this);// setCentralWidget(ui-tabWidget);ui-tabWidget-setVisible(false);ui-tabWidget-clear();ui-tabWidget-setTabsClosable(true);}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::do_changeTabTitle(QString title)
{int index ui-tabWidget-currentIndex();ui-tabWidget-setTabText(index, title);
}void MainWindow::on_actionWidgetInsite_triggered()
{TFormDoc *formDoc new TFormDoc(this);formDoc-setAttribute(Qt::WA_DeleteOnClose);int cur ui-tabWidget-addTab(formDoc, QString::asprintf(Doc %d, ui-tabWidget-count()));ui-tabWidget-setCurrentIndex(cur);ui-tabWidget-setVisible(true);connect(formDoc, TFormDoc::titleChanged, this, MainWindow::do_changeTabTitle);
}
// tab的关闭
void MainWindow::on_tabWidget_tabCloseRequested(int index)
{ui-tabWidget-widget(index)-close();
}void MainWindow::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.drawPixmap(0, ui-toolBar-height(),width(), height()-ui-toolBar-height()-ui-statusbar-height(),QPixmap(:/jpg/jpg/shenli.jpg));
}// 独立Widget窗口
void MainWindow::on_actionWidgetAlone_triggered()
{TFormDoc *formDoc new TFormDoc();formDoc-setAttribute(Qt::WA_DeleteOnClose);formDoc-setWindowTitle(基于QWidget的窗口);formDoc-setWindowOpacity(0.8);formDoc-show();
}// 嵌入式MainWindow窗口
void MainWindow::on_actionMainWindowInsite_triggered()
{TFormTable *formTable new TFormTable(this);formTable-setAttribute(Qt::WA_DeleteOnClose);int cur ui-tabWidget-addTab(formTable, QString::asprintf(Table %d, ui-tabWidget-count()));ui-tabWidget-setCurrentIndex(cur);ui-tabWidget-setVisible(true);
}
// 独立式MainWindow窗口
void MainWindow::on_actionMainWindowAlone_triggered()
{TFormTable *formTable new TFormTable();formTable-setAttribute(Qt::WA_DeleteOnClose);formTable-setWindowTitle(独立的window);formTable-show();
} tformdoc.cpp #include tformdoc.h
#include ui_tformdoc.h
#include QToolBar
#include QFileDialog
#include QFontDialog
#include QVBoxLayout
TFormDoc::TFormDoc(QWidget *parent): QWidget(parent), ui(new Ui::TFormDoc)
{ui-setupUi(this);QToolBar *locToolBar new QToolBar(文档, this);locToolBar-addAction(ui-actionOpenFile);locToolBar-addAction(ui-actionFont);locToolBar-addSeparator();locToolBar-addAction(ui-actionCut);locToolBar-addAction(ui-actionCopy);locToolBar-addAction(ui-actionPatse);locToolBar-addAction(ui-actionRedo);locToolBar-addAction(ui-actionUndo);locToolBar-addSeparator();locToolBar-addAction(ui-actionClose);locToolBar-setToolButtonStyle(Qt::ToolButtonTextUnderIcon);QVBoxLayout *layout new QVBoxLayout(this);layout-addWidget(locToolBar);layout-addWidget(ui-plainTextEdit);this-setLayout(layout);
}TFormDoc::~TFormDoc()
{delete ui;
}void TFormDoc::on_actionOpenFile_triggered()
{QString curPath QCoreApplication::applicationDirPath();QString aFileName QFileDialog::getOpenFileName(this, 打开一个文件, curPath, (*.h *.cpp);;(*.txt);;(*.*));if(aFileName.isEmpty()){return;}QFile aFile(aFileName);if(aFile.open(QIODevice::ReadOnly | QIODevice::Text)){ui-plainTextEdit-clear();QTextStream aStream(aFile);while(!aStream.atEnd()){QString str aStream.readLine();ui-plainTextEdit-appendPlainText(str);}aFile.close();QFileInfo fileInfo(aFileName);QString shortName fileInfo.fileName();setWindowTitle(shortName);emit titleChanged(shortName);}}void TFormDoc::on_actionFont_triggered()
{QFont font ui-plainTextEdit-font();bool ok;font QFontDialog::getFont(ok, font);if(ok){ui-plainTextEdit-setFont(font);}
}void TFormDoc::on_actionClose_triggered()
{this-close();
} tformtable.cpp #include tformtable.h
#include ui_TFormTable.h
#include QStandardItemModel
#include QItemSelectionModel
#include QMessageBox
#include QLabel
#include tdialogsize.h
#include tdialogheaders.h
#include tdialoglocate.hTFormTable::TFormTable(QWidget *parent): QMainWindow(parent), ui(new Ui::TFormTable)
{ui-setupUi(this);dlgHeaders NULL; // 初始化m_model new QStandardItemModel(4, 4, this);QStringList header;header 姓名 性别 学位 部门;m_model-setHorizontalHeaderLabels(header);m_selection new QItemSelectionModel(m_model);ui-tableView-setModel(m_model);ui-tableView-setSelectionModel(m_selection);setCentralWidget(ui-tableView);labCellPos new QLabel(当前单元, this);labCellPos-setMinimumWidth(200);labCellText new QLabel(单元格内容, this);labCellText-setMinimumWidth(200);ui-statusbar-addWidget(labCellPos);ui-statusbar-addWidget(labCellText);connect(m_selection, QItemSelectionModel::currentChanged, this, TFormTable::do_model_currentChanged);
}TFormTable::~TFormTable()
{delete ui;}// void TFormTable::on_actionSetRowCol_triggered()
// {
// TDialogSize *dlgTableSize new TDialogSize();
// dlgTableSize-setWindowFlag(Qt::MSWindowsFixedSizeDialogHint);
// dlgTableSize-setRowColumn(m_model-rowCount(), m_model-columnCount());
// int ret dlgTableSize-exec();
// if(ret QDialog::Accepted){
// m_model-setColumnCount(dlgTableSize-columnCount());
// m_model-setRowCount(dlgTableSize-rowCount());
// }
// delete dlgTableSize;
// }void TFormTable::on_actionSetRowCol_triggered()
{TDialogSize dlgTableSize;dlgTableSize.setWindowFlag(Qt::MSWindowsFixedSizeDialogHint);dlgTableSize.setRowColumn(m_model-rowCount(), m_model-columnCount());int ret dlgTableSize.exec();if(ret QDialog::Accepted){m_model-setColumnCount(dlgTableSize.columnCount());m_model-setRowCount(dlgTableSize.rowCount());}// delete dlgTableSize;
}void TFormTable::on_actionSetHeader_triggered()
{if(dlgHeaders NULL){dlgHeaders new TDialogHeaders(this);}QStringList strList;for(int i 0; i m_model-columnCount(); i){strList.append(m_model-headerData(i, Qt::Horizontal, Qt::DisplayRole).toString());}dlgHeaders-setHeaderList(strList);int ret dlgHeaders-exec();if(ret QDialog::Accepted){m_model-setHorizontalHeaderLabels(dlgHeaders-headerList());}
}void TFormTable::do_setCellText(int row, int column, QString text)
{QModelIndex index m_model-index(row, column);m_selection-clearSelection();m_selection-setCurrentIndex(index, QItemSelectionModel::Select);m_model-setData(index, text, Qt::DisplayRole);
}void TFormTable::on_actionLocateUnit_triggered()
{TDialogLocate *dlgLocate new TDialogLocate(this);dlgLocate-setAttribute(Qt::WA_DeleteOnClose);dlgLocate-setWindowFlag(Qt::WindowStaysOnTopHint);// 初始化对话框dlgLocate-setSpinRange(m_model-rowCount(), m_model-columnCount());QModelIndex curIndex m_selection-currentIndex();if(curIndex.isValid()){dlgLocate-setSpinValue(curIndex.row(), curIndex.column());}dlgLocate-show();dlgLocate-setModal(false);connect(dlgLocate, TDialogLocate::changeCellText, this, TFormTable::do_setCellText);connect(dlgLocate, TDialogLocate::changeActionEnable, ui-actionLocateUnit, QAction::setEnabled);connect(this, TFormTable::cellIndexChanged, dlgLocate, TDialogLocate::setSpinValue);}void TFormTable::on_tableView_clicked(const QModelIndex index)
{emit cellIndexChanged(index.row(), index.column());
}void TFormTable::do_model_currentChanged(const QModelIndex current, const QModelIndex previous)
{Q_UNUSED(previous);if(current.isValid()){labCellPos-setText(QString::asprintf(当前单元格%d行%d列,current.row(), current.column()));QStandardItem *aItem m_model-itemFromIndex(current);labCellText-setText(单元格内容 aItem-text());}
} tdialogheaders.cpp #include tdialogheaders.h
#include ui_tdialogheaders.h
#include QStringListModelTDialogHeaders::TDialogHeaders(QWidget *parent): QDialog(parent), ui(new Ui::TDialogHeaders)
{ui-setupUi(this);m_model new QStringListModel(this);ui-listView-setModel(m_model);
}TDialogHeaders::~TDialogHeaders()
{delete ui;
}void TDialogHeaders::setHeaderList(QStringList headers)
{m_model-setStringList(headers);
}QStringList TDialogHeaders::headerList()
{return m_model-stringList();
} tdialoglocate.cpp #include tdialoglocate.h
#include ui_tdialoglocate.h
#include QCloseEvent
#include QShowEventTDialogLocate::TDialogLocate(QWidget *parent): QDialog(parent), ui(new Ui::TDialogLocate)
{ui-setupUi(this);
}TDialogLocate::~TDialogLocate()
{delete ui;
}void TDialogLocate::setSpinRange(int rowCount, int colCount)
{ui-spinBoxRow-setMaximum(rowCount-1);ui-spinBoxCol-setMaximum(colCount-1);
}void TDialogLocate::setSpinValue(int rowNo, int colNo)
{ui-spinBoxRow-setValue(rowNo);ui-spinBoxCol-setValue(colNo);
}// 设定文字
void TDialogLocate::on_btnSetText_clicked()
{QString text ui-lineEdit-text();int row ui-spinBoxRow-value();int col ui-spinBoxCol-value();if(ui-chkIncRow-isChecked()){ui-spinBoxRow-setValue(ui-spinBoxRow-value()1);}if(ui-chkIncCol-isChecked()){ui-spinBoxCol-setValue(ui-spinBoxCol-value()1);}emit changeCellText(row, col, text);
}void TDialogLocate::closeEvent(QCloseEvent *event)
{event-accept();emit changeActionEnable(true);
}void TDialogLocate::showEvent(QShowEvent *event)
{event-accept();emit changeActionEnable(false);
} tdialogsize.cpp #include tdialogsize.h
#include ui_tdialogsize.h
#include QMessageBoxTDialogSize::TDialogSize(QWidget *parent): QDialog(parent), ui(new Ui::TDialogSize)
{ui-setupUi(this);
}TDialogSize::~TDialogSize()
{delete ui;QMessageBox::information(this, 提示, TDialogSize释放资源);
}void TDialogSize::setRowColumn(int row, int column)
{ui-spinBoxRow-setValue(row);ui-spinBoxCol-setValue(column);
}int TDialogSize::rowCount()
{return ui-spinBoxRow-value();
}int TDialogSize::columnCount()
{return ui-spinBoxCol-value();
}