#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "dialogsetsie.h"
#include <QStringList>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
theModel = new QStandardItemModel(this);
theSelection = new QItemSelectionModel(theModel);
ui->tableView->setModel(theModel);
ui->tableView->setSelectionModel(theSelection);
dialogHeder = nullptr;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::setActLocateEnable(bool enable)
{
ui->actionSetRect->setEnabled(enable);
}
void MainWindow::setActLocateNull() {
dialogLocate = nullptr;
}
void MainWindow::setCellText(int row, int col, QString text)
{
QModelIndex index = theModel->index(row, col);
theModel->setData(index, text, Qt::DisplayRole);
theSelection->clearSelection();
theSelection->setCurrentIndex(index, QItemSelectionModel::Select);
}
void MainWindow::on_actionCut_triggered()
{
this->close();
}
void MainWindow::on_actionSetLineColumn_triggered()
{
DialogSetSie *dlg = new DialogSetSie(this);
dlg->SetRowsColumns(theModel->rowCount(), theModel->columnCount());
int ret = dlg->exec();
if (QDialog::Accepted == ret) {
int row = dlg->rowCount();
int col = dlg->columnCount();
theModel->setColumnCount(col);
theModel->setRowCount(row);
}
delete dlg;
}
void MainWindow::on_actionHeadTitle_triggered()
{
if (!dialogHeder) {
dialogHeder = new DialogSetHeaders(this);
}
if (dialogHeder->stringList().count() != theModel->columnCount()) {
QStringList strList;
for (int i=0; i<theModel->columnCount(); i++) {
//strList.append(theModel->headerData(i, Qt::Horizontal));
strList << theModel->headerData(i, Qt::Horizontal).toString();
}
dialogHeder->setStringList(strList);
}
//模态对话框显示
int ret = dialogHeder->exec();
if (QDialog::Accepted == ret) {
QStringList strList = dialogHeder->stringList();
theModel->setHorizontalHeaderLabels(strList);
}
}
void MainWindow::on_actionQuit_triggered()
{
this->close();
}
void MainWindow::on_actionSetRect_triggered()
{
ui->actionSetRect->setDisabled(true);
dialogLocate = new QDialogLocate(this);
dialogLocate->setAttribute(Qt::WA_DeleteOnClose);
Qt::WindowFlags flags = dialogLocate->windowFlags();
dialogLocate->setWindowFlags(flags|Qt::WindowStaysOnTopHint);
dialogLocate->setRange(theModel->rowCount(), theModel->columnCount());
QModelIndex curIndex = theSelection->currentIndex();
if (curIndex.isValid()) {
dialogLocate->setValue(curIndex.row(), curIndex.column());
}
connect(dialogLocate, SIGNAL(changeCellText(int, int, QString)), this, SLOT(setCellText(int, int, QString)));
//connect(dialogLocate, &QDialogLocate::changeCellText, this, &MainWindow::setCellText);
//非模态对话框显示
dialogLocate->show();
}
void MainWindow::on_tableView_clicked(const QModelIndex &index)
{
if (NULL != dialogLocate) {
dialogLocate->setValue(index.row(), index.column());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
自定义对话框实现综合案例
共80个文件
png:48个
ico:9个
bmp:7个
5星 · 超过95%的资源 需积分: 15 7 下载量 85 浏览量
2022-12-25
16:57:30
上传
评论
收藏 131KB ZIP 举报
温馨提示
qt框架下创建模态对话框和非模态对话框综合案列,对实际业务开发有一定的参考价值。
资源推荐
资源详情
资源评论
收起资源包目录
MyDialog.zip (80个子文件)
MyDialog
mainwindow.h 1KB
dialogsetsie.ui 2KB
dialogsetheaders.ui 3KB
MyDialog.pro.user 19KB
mainwindow.cpp 3KB
dialogsetsie.h 517B
MyDialog.pro 867B
tubiaoziyuan
suda_open.bmp 1KB
29.png 2KB
shortcut_remind_icon200.png 466B
icon_info_normal.png 701B
31.png 3KB
28.png 2KB
check.png 275B
tabsection3.png 725B
finishsucc.png 640B
43.png 653B
news_tray_default.png 541B
kafei.ico 32KB
30.png 980B
icon_info_important.png 662B
onekeyinstall.png 2KB
news_tray.ico 15KB
ocr.bmp 1KB
uninst_logo.png 3KB
Install.ico 279KB
webdefault.png 801B
headline200.png 789B
icon_noinfo.png 1KB
icon_warning.png 390B
uninst_default_icon.png 771B
Reader.ico 30KB
shortcut_remind_icon.png 291B
to_word.bmp 1KB
24.png 1KB
25.png 2KB
44.png 347B
icon_new.png 352B
text.ico 1KB
pdf_merge.bmp 1KB
23.png 2KB
27.png 1KB
force_clear.png 895B
pdf_split.bmp 1KB
pdf.ico 1KB
gjgj_kjjs.png 608B
icon_comment.png 496B
mobi.ico 2KB
news_tray_default200.png 1KB
gjgj_mrrj.png 2KB
close.png 1KB
Uninstall.ico 15KB
gjgj.png 1KB
21.png 2KB
to_image.bmp 1KB
icon3.png 2KB
gold.png 554B
headline.png 572B
32.png 1KB
20.png 2KB
epub.ico 1KB
unusesize.png 796B
gjgj_zzyx.png 983B
msg_icon_error.png 470B
soft_downloading.png 1KB
rjxz.png 1KB
to_pdf.bmp 1KB
26.png 1KB
22.png 2KB
icon_info_update.png 591B
unusetime.png 420B
main.cpp 183B
dialogsetheaders.h 608B
qdialoglocate.ui 2KB
mainwindow.ui 3KB
dialogsetsie.cpp 761B
res.qrc 3KB
qdialoglocate.h 615B
dialogsetheaders.cpp 808B
qdialoglocate.cpp 1KB
共 80 条
- 1
资源评论
- tangweijian1232023-03-09代码在QT5.14版本上能运行,功能跟博客展示的一样,有借鉴价值 #内容详尽
hsy12342611
- 粉丝: 2884
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功